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