6주차 강의 정리(이경훈) - aksrud/3kingOfGod GitHub Wiki
포인터(pointer or reference)
주소를 담는 변수.
value copy 값을 복사
#include <stdio.h>
int main() {
int n = 10;
int k = n;
n = 100;
printf("%d %d\n", n, k);
return 0;
}
address copy 주소를 복사
#include <stdio.h>
int main() {
int n = 10;
int* k = &n;
// n = 100;
printf("%d %d\n", n, *k);
return 0;
}
변수 앞에 &를 붙이면 그 변수의 시작 주소 포인터 변수 앞에 *를 붙이면 값 참조
#include <stdio.h>
int main() {
char c = 10;
double d = 5.6;
char* p1 = &c;
double* p2 = &d;
printf("%d %g\n", c, d);
printf("%d %g\n", *p1, *p2);
printf("%p %p\n", p1, p2);
printf("%p %p\n", &c, &d);
printf("%p %p\n", *&c, *&d);
return 0;
}
똑같이 자료형 *(n번 해주고) 포인터의 주소를 저장 가능.
#include <stdio.h>
int main() {
int n = 10;
int* p = &n;
int** pp = &p;
printf("%d %d %d\n", n, *p, **pp);
printf("%p %p %p\n", &n, &*p, &**pp);
printf("%p %p %p\n", &n, p, pp);
return 0;
}