为什么指针运算实际是地址运算而又不同于地址运算

来源:百度知道 编辑:UC知道 时间:2024/06/14 03:25:26
在教材里有这么一句话:指针运算实际上是指地址运算而又不同于地址运算"这该怎么理解?

通常地址的单位为字节,然而指针的类型却是各种各样的,因此两者的运算是存在差别的。比如:假设地址用整型来表示
int address = 0x12345678;
计算address+0x11,结果是0x12345689。
而当定义指针为
char *p = 0x12345678;
计算p+0x11,结果是0x12345689,与地址相同;当定义指针为
int *p = 0x12345678;
计算p+0x11,结果是123456BC。
也就是说,指针运算需要考虑指针所指向的数据类型。