C语言,T的值为什么等于1而不是等于2?
答案:3 悬赏:30 手机版
解决时间 2021-02-12 03:10
- 提问者网友:回忆在搜索
- 2021-02-11 17:35
C语言,T的值为什么等于1而不是等于2?
最佳答案
- 五星知识达人网友:往事埋风中
- 2021-02-11 19:11
首先计算++x。 先自加。 x=2
作为||左值, x值非0即为真。 所以右值不参与计算。 整体表达式
值为真。
作为逻辑运算结果, 值为真则为1. 所以t=1.
计算后
t=1 x=2 y=1 z=1
追问为什么x=2、y=1、z=1?追答x自加过。
而||左值为1, 右值不参与运算,yz值不变。追问如果题目为x++,y++,z+c,那结果等于几呢?追答如果是
t=x++,y++,z+c;
由于赋值高于逗号。所以实际上是t=x++ 先赋值, t=1.
然后x自加 y自加。
t=1 x=2 y=2
z+c是什么鬼, 这里没c。。。追问抱歉,是z++如果是x++是直接赋x的值给t吗当x=y=z=1
想问t=x++ || y++ & z++;
t的值为?追答x++直接赋值x给t。 所以t=1.
如果是
t=x++ || y++ & z++;
那么x值为真, t=x=1 然后x自加 x=2. y z不变,还都是1.追问yz为什么不++?
作为||左值, x值非0即为真。 所以右值不参与计算。 整体表达式
值为真。
作为逻辑运算结果, 值为真则为1. 所以t=1.
计算后
t=1 x=2 y=1 z=1
追问为什么x=2、y=1、z=1?追答x自加过。
而||左值为1, 右值不参与运算,yz值不变。追问如果题目为x++,y++,z+c,那结果等于几呢?追答如果是
t=x++,y++,z+c;
由于赋值高于逗号。所以实际上是t=x++ 先赋值, t=1.
然后x自加 y自加。
t=1 x=2 y=2
z+c是什么鬼, 这里没c。。。追问抱歉,是z++如果是x++是直接赋x的值给t吗当x=y=z=1
想问t=x++ || y++ & z++;
t的值为?追答x++直接赋值x给t。 所以t=1.
如果是
t=x++ || y++ & z++;
那么x值为真, t=x=1 然后x自加 x=2. y z不变,还都是1.追问yz为什么不++?
全部回答
- 1楼网友:等灯
- 2021-02-11 21:12
因为|| &&是逻辑运算,其结果只有0或1追问如果题目为x++,y++,z+c,那结果等于几呢?z++
- 2楼网友:天凉才是好个秋
- 2021-02-11 19:33
++前置是先将变量的值加一,然后再参与运算,所以相当于2||2&&2 = 1,如果是++(x||++y&&++z)的化,就是2了,希望可以帮到你。追问那++x与x++有什么区别?追答
比如说:int num[] = {1, 2, 3, 4, 5};
int* p = num;
printf("%d ", *(++p)); //输出的是2,此时p指向2
printf("%d ", *(p++)); //输出的是1,此时p指向2,注意把上面的那句去掉,只保留这一句追问这个程序还看不懂呢当x=y=z=1
想问t=x++ || y++ & z++;
t的值为?
比如说:int num[] = {1, 2, 3, 4, 5};
int* p = num;
printf("%d ", *(++p)); //输出的是2,此时p指向2
printf("%d ", *(p++)); //输出的是1,此时p指向2,注意把上面的那句去掉,只保留这一句追问这个程序还看不懂呢当x=y=z=1
想问t=x++ || y++ & z++;
t的值为?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯