一个题目,为什么y=1,不等于2
题目:设x,y,z,t均为int型变量,则执行完下面语句后,y的值是( C )
x=y=z=1;t=++x||++y&&++z;
(A) 不确定 (B)2 (C)1 (D)0
问题:为什么y=1,不等于2 x = y = z = 1;
t = ++x || ++y && ++z;
t = true || true && true;
t = true
t = 1 // 除了 0,其它数字为真,真也就是 1 如果 || 的左边为真就不执行右边了,也就是说 ++y 没有执行
人造人 发表于 2021-12-28 22:49
如果 || 的左边为真就不执行右边了,也就是说 ++y 没有执行
2楼的意思t为true,++y也为true,结果是真所以y=1,这种说法对吗?{:10_269:} 小亦003 发表于 2021-12-28 23:28
2楼的意思t为true,++y也为true,结果是真所以y=1,这种说法对吗?
我感觉不对, || 右边的内容就没有执行
y 还保持这条语句执行后的 1
x = y = z = 1; 人造人 发表于 2021-12-28 23:40
我感觉不对, || 右边的内容就没有执行
y 还保持这条语句执行后的 1
感谢 小亦003 发表于 2021-12-28 23:28
2楼的意思t为true,++y也为true,结果是真所以y=1,这种说法对吗?
true 就是 1,false 就是 0 {:10_256:},无论 ++y 或 y++ 最终必然大于 0,所以肯定不会是 false 小亦003 发表于 2021-12-28 23:28
2楼的意思t为true,++y也为true,结果是真所以y=1,这种说法对吗?
这里涉及布林值和布林类型 2 个知识:
1.)布林值:true 或 false(1 或 0)
2.)布林类型:
a.)true:1、2、3、4、5、'a'、'b'、{8}、等等...
b.)false:0、0.0000、{'\0'}、NULL、等...
学习 啦
傻眼貓咪 发表于 2021-12-29 09:14
true 就是 1,false 就是 0 ,无论 ++y 或 y++ 最终必然大于 0,所以肯定不会是 false
哦哦,明白了 傻眼貓咪 发表于 2021-12-29 09:21
这里涉及布林值和布林类型 2 个知识:
1.)布林值:true 或 false(1 或 0)
这些知识我还没学,谢谢普及{:10_254:}
页:
[1]