本文目录一览:
- 1、c语言题目 b=3 ; b=(++b)+(++b)+(++b); 输出最终b=? 答案是16 具体怎么算的?我怎么算到...
- 2、c语言指针中*b=3与b=3有什么区别
- 3、c语言 第七题 为什么b是3
c语言题目 b=3 ; b=(++b)+(++b)+(++b); 输出最终b=? 答案是16 具体怎么算的?我怎么算到...
计算b=(++b)+(++b)+(++b);时
第一步:计算第一个(++b)这点谁都不会错;此时b=4;
第二步:计算第二个(++b)这点也没有问题吧,此时b=5;
第三步:计算(++b)+(++b)将5代入,(++b)+(++b)=10;这点容易想不通,为什么不是5+4呢?因为变量只有一个存储单元,中间结果被覆盖掉了。
第四步:之后的运算应该不是问题了吧……
程序是先运行了b=(++b)+(++b);这儿等号赋值语句执行前,a已经完成了两次自加a的值为5,所以加了之后b=10;然后b=b+(++b);b自加变成6,所以b=10+6=16;
若有帮助
望采纳!
c语言指针中*b=3与b=3有什么区别
b指针的话,b=a肯定不对。要么*b=a,要么b=a,这两种语法都正确,但是意义不同。前者将a的值赋值给指针b所在的地址,两个值相互不影响。后者将a的地址赋值给指针b,a和b指向同一个内存地址,该地址的值如果有变化,a和*b同时会变化。
c语言 第七题 为什么b是3
因为a++ --b这个条件是false,,false什么都是false,所以后面的条件都不会判断了,也就是说只执行了a++ --b。所以b=3