C++编译器:
运行结果:
C编译器:
运行结果:
下面我从汇编的角度来解释一下:
在C++编译器中,把*p和i认为是不同的类型(*p是变量,i是常量),这样,*p改变,i不变,也就是两个不同类型的数据存入了同一个存储单元中(在相同的物理地址下存了两个值)。
在C编译器中,把*p和i认为是相同类型(同是变量),这样,*p改变,i随之改变,就相当于先给i赋值100,再给i赋值200。
C++编译器:
运行结果:
C编译器:
运行结果:
下面我从汇编的角度来解释一下:
在C++编译器中,把*p和i认为是不同的类型(*p是变量,i是常量),这样,*p改变,i不变,也就是两个不同类型的数据存入了同一个存储单元中(在相同的物理地址下存了两个值)。
在C编译器中,把*p和i认为是相同类型(同是变量),这样,*p改变,i随之改变,就相当于先给i赋值100,再给i赋值200。