求下述C语言代码的运行输出并解释结果成因
运行输出
b = 4 c = 1
结果成因解释
- 初始变量赋值:
a=10、b=4、c=2,在C语言里,非0值代表逻辑真,0代表逻辑假。 - 关于
b != !a;这条语句:!a是逻辑非操作,a是10(非0),所以!a的结果是0。- 接着计算
b != 0,结果是1,但这个计算结果没有被赋值给任何变量,b的初始值完全没被改动,所以b还是4。
- 关于
c =! !a;这条语句:- 先执行
!a得到0,再对0执行逻辑非!0,结果是1。 - 把这个1赋值给c,所以c的值从原来的2变成了1。
- 先执行
- 最后
printf输出当前b和c的值,就是4和1。
内容的提问来源于stack exchange,提问作者Vivek
相关产品推荐
相关产品推荐

