以下代码输入
结果是
将a和b交换位置
结果是
请教各位大帅比这是为啥呢?
char只占一个字节,而你用%d对它进行赋值,就会将连续4个字节赋值给这个地址
如果你a在前,b在后,那么假如a的地址是n,b的地址就是n+1
当你给a赋值,a的值是1,同时a之前的3个字节变成0,你给b赋值,b的值变成1,同时b之前3个字节变成0,这里就包括a,所以a变成0
如果你先定义b后定义a,那么a的地址比b的大,先给a赋值后给b赋值就不会覆盖a的值
-=-=-=-=
你想象一下手里有许多宽刷子,蘸了不同颜色的涂料,你准备把键盘的每个键涂上不同的颜色
问题是这个刷子有4个键那么宽
你先给字母s刷颜色的时候,d,f,g一起被你刷了颜色,你再给字母a刷颜色的时候,s又被你重新刷了
而你先刷a再刷s就不会有问题