两个指针相减

特别特殊的点

#include
int main(void)
{
	int  arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	printf("%p\n", &arr[3]);//0x0135f9cc
	int* p = &arr[3];
	printf("%p\n", p+1);//0x0135f9d0
	printf("%d\n", *(p + 1));//5
	printf("%p\n", &arr[4]);//0x0135f9d0
	printf("%p\n", &arr[9]);//0x0135f9e4
	printf("%d\n", &arr[9] - &arr[4]);//5
	return 0;
}

根据上述代码:
无论是指针变量加1减1,相差都是4个字节
还是不同的变量的指针,相差的都是4的倍数
只有两个指针变量相减的时候,显示的是相差的个数
注意:只能是相同类型的指针变量进行相减

你可能感兴趣的:(C语言,学习记录)