C语言指针加1

版权声明:本文为博主原创文章,欢迎转载,请标明出处。 https://blog.csdn.net/Think88666/article/details/90437703

C语言中的指针加1并不只是简单的地址加1而已,实际上指针加1,地址偏移的多少是与指针的类型相关的。

demo如下:

int main()
{
	char arr1[10];
	char *p1 = &arr1[0];
	printf("%d \n", p1);
	printf("%d \n", p1+1);   //p1+1地址偏移了一个sizeof(char)

	int arr2[10];
	int *p2 = &arr2[0];
	printf("%d \n", p2);
	printf("%d \n", p2 + 1);   //p2+1地址偏移了一个sizeof(int)
}

结论:指针加1不是单纯的地址偏移1位,而实则上地址是偏移了一个sizeof(指针指向的类型)

猜你喜欢

转载自blog.csdn.net/Think88666/article/details/90437703