본문 바로가기
CS 기초/CS50 2019

[C언어] 포인터

by Dev.Andy 2023. 6. 4.

포인터의 정의와 연산자

정의

어느 변수에 대하여 메모리의 시작 주소를 값으로 담고 있는 변수

연산자

  • 참조 연산자: *(asterisk)를 포인터 변수에 써서 해당 변수가 다른 변수를 참조하기 위해 쓴다. 이 연산자를 통해 해당 변수가 "포인터"임을 알린다.
  • 주소 연산자: &(ampersand)를 실제 할당할 변수 앞에 써서 그 변수의 시작 주소를 할당하기 위해 쓴다.

코드와 결과

코드

#include <stdio.h>

int main(void)
{
    int a; // a라는 변수를 초기화
    int *ptr = &a; // a의 시작 주소(&)를 ptr이라는 포인터에 참조(*)한다.

    a = 10; // 

    printf("a is %d\\n", a);
    printf("&a is %p\\n", &a);
    printf("&ptr is %p\\n", &ptr);
    printf("*ptr is %p\\n", ptr);

    return 0;
}

 

결과

a is 10
&a is 0x16fb4afe8
&ptr is 0x16fb4afe0
*ptr is 0x16fb4afe8

 

댓글