포인터 연산에서 질문!
한별나라
2023.04.01
int main(void)
{
int arr[5]={1, 2, 3, 4, 5};
int* parr=arr;
printf(%d \n, *parr);
printf(%d \n, parr);
printf(%d \n, ++parr);
printf(%d \n, *parr);
return 0;
}
그냥 넘어가면 알겠는데
뭔가 원리를 이해하려면 자꾸 정리가 안돼서 질문드려요.
주소값에 1을 더하면 자료형 만큼 (예로 char형은 1, int형은 4)더해지잖아요
그런데
++parr 자체는 변수 안에 있는 데이터(가리키고 있는 주소값이겠죠)
에 +1을 하라는 건데
변수 개념으로 하면 1더하는게 맞는데
포인터니깐 포인터에 있는 변수는 자료형에 맞게 알아서 더해지는건가요?
한번 포인터 변수로 지정해두면
그냥 parr 이렇게 꺼내서 쓰면 알아서 포인터 연산이 되는건가요?
배열이름이 상수 포인터라는데 그럼
배열은 상수 포인터의 묶음이라고 보면 되나요?