C基础——指针偏移问题

有程序,如下

int main()
{
	uint8_t array[4] = {0x11, 0x22, 0x33, 0x44};
	uint16_t * p = (uint16_t *)array;
	printf("%X\r\n", *p);
	p++;
	printf("%X\r\n", *p);
	return 0;

其输出是
程序输出
可以看到,一个16位无符号类型的指针p,在执行完+1操作后,p指向的地址实际上偏移了2个字节,即一个p对应类型的数据单元。如果指针的类型是32位无符号类型,指针+1,指针指向地址偏移4个字节。


版权声明:本文为wenlon7原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。