48. 포인터와 – 연산

C 언어에서는 같은 원소의 포인터 사이의 – 연산을 제공하죠.

연산 결과는 정수 형식으로 두 포인터 사이의 원소 개수예요.
예를 들어 int 형식 변수 a의 값이 1016이고 int 형식 변수 b의 값이 1000일 때 a-b의 결과는 4랍니다.

◈ 포인터 형식 사이의 – 연산

#include <stdio.h>
int main()
{
    int *a = (int *)1016;
    int *b = (int *)1000;
    printf("a:%d b:%d a-b:%d\n",a,b,a-b);
    return 0;
}

◈ 실행 결과

a:1016 b:1000 a-b:4

◈ 배열 이름과 포인터 형식 사이의 – 연산

#include <stdio.h>
int main()
{
    int arr[10];
    int *p = arr+4;
    printf("arr:%d p:%d p-arr:%d\n", arr, p, p-arr);
    return 0;
}

◈ 실행 결과

a:1242912 p:1242928 p-arr:4