포인터 기초
포인터
어떠한 변수 등의 주소를 가리키기 위해 사용되는 것으로, 해당 주소에 접근하고 사용하기 위하여 쓰인다.
포인터 사용
포인터는 주로 변수 등의 이름 앞에 * 기호를 붙여 사용한다
포인터 변수에 어떠한 변수의 주소를 저장할 때는 변수 앞에 & 기호를 붙여 사용한다
예시
#include <stdio.h>
int main()
{
int a = 10;
printf("a = %d\n", a);
printf("&a = %p\n", &a);
int* p = &a; //정수형 포인터 변수 p에 a의 주소 값 대입
printf("p = %p\n", p); //a의 주소 값
printf("*p = %d\n", *p); //a의 값 10
printf("&p = %p\n", &p); //p의 주소 값
*p = 20; //p가 가리키는 주소 내의 값을 바꿈
printf("*p = %d\n", *p); //바뀐 a의 값인 20
printf("a = %d\n", a); //20
//주소의 크기는 x86환경에서는 4바이트, x64환경에서는 8바이트
int& r = a; //a의 주소에 r이라는 이름을 붙임, r과 a는 동일한 주소를 가리키게 됨
printf("a = %d\n", a);
printf("r = %d\n", r);
printf("&a = %p\n", &a);
printf("&r = %p\n", &r);
return 0;
}