반응형
포인터의 뺄셈은 아래와 같이 정의됩니다.
포인터 - 포인터 = (값의 차이)/(자료형 크기)
각 자료가 서로 몇 자료형 떨어져 있는지를 알 수 있습니다. 배열에 적용하면 서로 순서가 얼마나 차이나는지 알 수 있습니다.
배열을 예로 들어봅시다.
#include <stdio.h>
int main()
{
int ar[5]={1,2,3,4,5};
int *p3=&ar[3];
int *p1=&ar[1];
printf("%ld",p3-p1);
}
결과가 무엇일지 예측해봅시다. 2로 예측됩니다. int가 4바이트 이므로 a[3] 와 a[1] 의 주소는 8바이트만큼 떨어져 있습니다. 값의 차이는 8이고 자료형 크기는 4이므로 결과는 2입니다.
반응형
'C언어 > 포인터' 카테고리의 다른 글
[C언어] 자료형이 달라도 포인터의 크기는 같다 (0) | 2022.07.15 |
---|---|
[C언어] const 와 포인터 (0) | 2022.07.15 |
[C언어] 변수를 그냥 수정하는 것과 포인터로 수정하는 것의 차이 (0) | 2022.07.15 |
[C언어] 함수의 주소를 가리키는 포인터 (0) | 2022.07.07 |
[C언어] 배열포인터 vs 포인터배열 (0) | 2022.07.07 |
댓글