#include <stdio.h>
int swap (int*a);
int main (void) {
int a = 4;
int *b = &a;
swap (b);
printf("%d", *b);
}
int swap (int *a) {
int c = 5;
a = &c;
printf ("%d", *a);
}
이 코드에서 54가 출력되는데
왜 55가 출력이 안되는건가요?
포인터가 함수에서 c의 주소를 가리키게 했는데, 함수 나오니까 다시 a의 주소를 가리키네요..
포인터 쓰는 코드 다시 보셈ㅇㅅㅇ
b의 주소값을 swap함수에서 a가 받은거 아님 ? 주소 받은 a가 다시 c주소 값 받는 거니까 실질적인 b의 주솟값은 변하지 않는거아닌가
swap 안의 c의 메모리는 함수가 종료되면 없어져요 ㅇㅅㅇ
포인터 그 자체가 메모리 주소가 아니라, 포인터를 메모리 주소를 가리키는 변수로 받아들이면 될까요??
그쵸