프로그래밍 언어/C

포인터 연산

야식은진리다 2020. 1. 5. 03:46

포인터 변수를 대상으로 +연산과 -연산을 할 수 있다.

중요한 것은 +1을 한다고 해서 간단히 1만 더해지지는 않는다는 것이다. int형 포인터에 1을 더하면 4가 증가하고 double형 포인터에 1을 더하면 8이 증가한다. 즉 간단히 말해서 type 형 포인터 변수에서의 n을 더한다는 것의 의미는 n*sizeof(type)의 크기만큼 더하겠다는 것과 같다. 

int arr[3] = { 1, 2, 3 };
printf("%d",*(arr+1));// printf("&d",arr[1]); 과 같은 결과가 나온다.

즉 int형 포인터의 경우 +1을 하면 4파이트 떨어진 메모리를 가리키게 되므로 배열에서 다음 요소를 가리키게 된다.

따라서 arr[i]과 *(arr+i)는 같다!