반응형

 

포인터 증감 연산

포인터 변수에 저장된 값에 대해서 증감연산을 진행할 수 있다.

곱셈 나눗셈등등은 불가하다.

 

(type)형 포인터 변수 대상의 증감 연산 시 sizeof(type)의 크기만큼 증감이 된다.

 

아래의 코드를 보면 ptr++, ptr--  증감연산자가 값에 영향을 끼치는게 아니라

주소에 영향을 끼치는 것을 알 수 있습니다!

int arr[3] = {10, 20, 30};
int* ptr = arr;
printf("%d %d %d \n", *ptr, *(ptr+1), *(ptr+2));	// 10 20 30 출력

printf("%d ", *ptr);	// 10 출력
ptr++;
printf("%d ", *ptr);	// 20 출력
ptr++;
printf("%d ", *ptr);	// 30 출력
ptr--;
printf("%d ", *ptr);	// 20 출력
ptr--;
printf("%d ", *ptr);	// 10 출력

즉, 결론은 arr이 포인터 변수의 이름이건 배열의 이름이건

arr[i] == *(arr+i) == *(ptr+i) 이렇게 사용할 수 있다

 

*(arr+i) => 포인터 연산자안의 괄호에서의 연산은

정수끼리의 연산이 아니라 주소의 연산이라고 생각하면 된다.

반응형

 

반응형

'C' 카테고리의 다른 글

포인터와 함수 이해  (0) 2023.05.15
포인터 배열  (0) 2023.05.15
포인터와 배열의 관계  (0) 2023.05.15
문자열에 대해서!  (0) 2023.05.15
C언어의 꽃 포인터!  (0) 2023.05.14

+ Recent posts