#include <stdio.h>
void call_1(int* a1) {
printf("%p\n", &a1);
}
void call_2(int** a2) {
printf("%p\n", a2);
}
int main() {
int a = 111;
int* b = &a;
int** c = &b;
call_1(b);
call_2(c);
return0;
}
b의 값이 a의 주소고 c의 값이 b의 주소인데
이렇게 하면 call_1에서 b의 주소가 출력되고 call_2에서 a2의 값인 b의 주소가 출력되서
각각의 출력이 같아야 하는거 아니야?
왜 다름?
call_3는 머꼬...
아 수정함...
암튼 대충 알아들어보면 &a1하면 b가 아니라 지역변수 a1의 주소가 나와야 맞겟쥬
아 그러면 b 주소 가져오려면 이중포인터로 &b를 인자로 넣어야 하는구나
그렇겟져
ㄱㅅㄱㅅ!