p에다가 주소값 10을 넣었다는 의미?
아님 단순히 *p = 10이라는 의미?
만약 후자면 p는 뭐임 그럼?
모르면 출력해보고 디버거로 변수 까보셈
int* p = 10;는 p이라는 이름의 int형 포인터를 선언함과 동시에 주소값 10으로 초기화한다는 의미임
반면 int a; int* p = &a; *p = 10; 같은 경우에는 p가 가리키는 주소(a의 주소) 안의 값을 10으로 대입하라는 얘기.
야 찾아보니까 10이라는 값을 쓰레기값 번지에 4바이트크기로 넣는데 나도 주소값 10일줄 알았는게 그게아니엿음 ㄷ
즉 맨 처음 선언하는 int* p에서 *는 포인터라는 타입(Type)이고, 선언 후 포인터 변수의 앞에 오는 *는 역참조(Dereferencing)라는 연산자(Operator)임. 타입과 연산자는 전혀 다른것
이게 다~ 공부가 부족한 탓입니다 - dc App
메인메모리에서 10번지부터 int크기만큼의 공간을 나타낸다고 보면됨 4바이트인 경우에는 10부터 13번지까지를 나타내는거야. 그래서 a = *p를 하면 메인메모리의 10~13번지의 값이 a에 저장되겠지
모르면 출력해보고 디버거로 변수 까보셈
int* p = 10;는 p이라는 이름의 int형 포인터를 선언함과 동시에 주소값 10으로 초기화한다는 의미임
반면 int a; int* p = &a; *p = 10; 같은 경우에는 p가 가리키는 주소(a의 주소) 안의 값을 10으로 대입하라는 얘기.
야 찾아보니까 10이라는 값을 쓰레기값 번지에 4바이트크기로 넣는데 나도 주소값 10일줄 알았는게 그게아니엿음 ㄷ
즉 맨 처음 선언하는 int* p에서 *는 포인터라는 타입(Type)이고, 선언 후 포인터 변수의 앞에 오는 *는 역참조(Dereferencing)라는 연산자(Operator)임. 타입과 연산자는 전혀 다른것
이게 다~ 공부가 부족한 탓입니다 - dc App
메인메모리에서 10번지부터 int크기만큼의 공간을 나타낸다고 보면됨 4바이트인 경우에는 10부터 13번지까지를 나타내는거야. 그래서 a = *p를 하면 메인메모리의 10~13번지의 값이 a에 저장되겠지