변수 = 메모리 공간의 이름
메모리는 1바이트당 1개의 주소를 가진다 = Byte-Addressing
변수의 메모리 시작 주소는 &
연산자로 얻을 수 있으며, prefix operator 임.
포인터 연산
→ [자료형의 주소] +/- [정수 * sizeof(자료형)] = 자료형의 주소
char * c
일때(int *)c + 1
하여 주소값을 4 증가 시킬수도 있다.주소가 주어졌을 때 메모리(값)에 접근하는 연산자 = *
변수로 사용할 수 있다. (좌항에 놓을 수 있음)
char c = 'A'; 일 때,
c 와 *&c 는 같다.
#include <stdio.h>
void main() {
int n = 0x44434241;
print("%d", *(char*)&n) // 65
print("%d", *(char*)&n + 1) // 66
}