본문 바로가기
C언어/포인터

[C언어] 포인터의 뺄셈

by bigpicture 2022. 7. 20.
반응형

포인터의 뺄셈은 아래와 같이 정의됩니다.

포인터 - 포인터 = (값의 차이)/(자료형 크기)

각 자료가 서로 몇 자료형 떨어져 있는지를 알 수 있습니다. 배열에 적용하면 서로 순서가 얼마나 차이나는지 알 수 있습니다. 

배열을 예로 들어봅시다. 

#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입니다. 

 

반응형

댓글