以下是在C++编译器中的操作(看后缀):
C++编译器给出的运行结果:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以下是在C编译器中的操作(看后缀):
C编译器给出的运行结果:
1.C编译器下,输出没问题,可以理解。
2.C++编译器下,*p改变,i值不变,这就不懂了。在改变*p的值之后,指针p指向的内存单元的地址没变并且与i的地址相同,也就是*p和i表示的是同一个地址中的内存单元中的值。而且,在执行完p++后,p的值加4,说明指针p之前指向的是一个int型的内存单元,也就是i所在的内存单元。那么问题来了,为何*p=200 而 i=100 ?