2. 포인터는 추상적이다 ? 포인터는 추상적으로 가질 수 없는 개념이다. 포인터에 대한 개념을 추상적으로 가질 경우 포인터를 100% 활용할 수 없다. 그렇다면 포인터를 어떻게 바라봐야 할까
3. 포인터의 정체 포인터는 int 변수 int 변수가 하드웨어 및 운영체제에 따라 그 크기가 달라지는 것처럼 포인터 변수의 크기도 같이 달라짐 sizeof( 포인터 변수 ) == sizeof( int ) sizeof( char * ) > sizeof( char ) 그렇다면 왜 따로 포인터 변수라는 것을 사용하는가 ?
4. 어셈블러에서 포인터 어셈블러에서 OFFSET 이나 ADDR 의 값을 저장할 때 모드에 따라 DWORD 나 WORD 를 사용했다 . 즉 , 어셈블러에서도 포인터 변수는 int 였다 . 하지만 어셈블러에서는 포인터 변수가 따로 없어서 주소에 있는 값을 참조할 때 여러 가지 처리를 해줘야 했다 . 크기를 모르기 때문에 PTR 을 사용해야 했고 크기에 따라 다르게 주소 값을 증가시켰다 .
5. 어셈블러에서 포인터 어셈블러에서 포인터 사용 mov esi, myaddress mov ax, WORD PTR [esi] add esi, TYPE myaddress mov ax, WORD PTR [esi]
6. C 언어에서 포인터 포인터는 가리키는 메모리가 어떤 메모리인지 알 수 있게 한다. char * 형의 포인터 변수는 1바이트 변수를 가리키고 있다. FILE * 형의 포인터 변수는 FILE 구조체를 가리키고 있으며 FILE 구조체의 멤버변수에 접근할 수 있게 한다.
7. C 언어에서 포인터 C 언어에서 포인터 사용 int a, b, c, k[10], *addr; addr = &k[0]; // &k[0] == k a = *addr; addr++; b = *addr; c = *(addr + 4)