#include <stdio.h>
int main(void) {
int num=10;
int * ptr1=#
int * ptr2= ptr1;
(*ptr1)++;
(*ptr2)++;
printf("%d \n", num);
return 0;
}
출력결과야 당연히 12겠고..
궁금한건
int * ptr2= ptr1;이 아니라
int * ptrt2= * ptr1; 로 코딩해보니깐 프로그램 중지한다고 뭐라뭐라 뜨던데..
왜 저렇게 코딩하면 오류나는거죠?
제 생각은 이렇거든요.
ptr1에 num의 주소 값이 저장되어있고
*ptr1은 num의 주소 값을 가리키고있고 (접근하는것이고)
따라서 포인터 변수 ptr2 에 ptr1의 주소 값을 저장하는게 아니라 *ptr1 가리키고 있는 것 , num 을 저장 하기 위해 저렇게 표현했는데 안되네요..
제가 생각하건데 아마 포인터 변수는 주소 값만 저장할 수 있기 때문에 그런것 같습니다.
맞나요?
하건데->하건대 (예컨대 단언컨대 생각건대 하건대 등등..) [리듬 맞춤법 봇♬]
int * 형식. 포인터 변수를 선언한거고 이름은 ptr2. ptr2 = *ptr1꼴... 이라 오류가 나는것 일거같다? 함수 원형같은거 보면 char * 이런식으로 나와있으니까 - DCW
int* ptr1=#과 그 다음줄을 잘 보면서 어떤식으로 포인터가 정의되었는지 천천히 생각해보셈
#이 아니라 #인데 뭐지
#-> & num