int main ()
{
int *p = (int*)1000;
double *q = (double*)2000;
printf("%d\n", p+2);
printf("%d\n", q+1);
return 0;
}
이런 건데
실행시키면
1008
2008
이렇게 나오드라구요?
저게 int 4바이트 곱하기 2 해서 1008
double 8바이트 곱하기 1해서 2008
이렇게 나온거라고 추측하고 있는데
대체 (int*), (double*) 이게 뭔지 모르겠습니다
int *p는 인티져 포인터타입니까 1000으로 초기화할때 (int*)를 써서 정수형 포인터에 들어가는 값이라고 명시해주는거
그렇게안하면 오류남 1000을 그냥 int 타입의 값이라고 생각해서 int* 변수에 못넣게함
어..................... 그럼 1000이 주소인건가요?
그렇죠 원래 저런식으로 주소를 쓰지는 않지만 어쨋든 *p에 접근하면 메모리주소 1000에 접근하는거에요.
와우 그렇군요 감사합니다!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(--)(__)(--)(__)