第七题,有两问,请写解题的过程。不要只有答案。谢谢
1个回答
展开全部
(1)我给你说下c语言处理这行代码的过程。
首先是从左往右的。
t=++x||++y&&++z
第一步:
t= (++x) || (++y&&++z);
因为||这个符号的优先级最低。
第二步:
++x; 执行完之后x=2;
(对于||这个符号有个特点就是如果左边是非零,那么直接就返回值了,不用执行右边了。因为没有意义,1或0还是1.)
第三部:
||左边是非零,直接结束,t=1;
所以t=1,x=2;y和z没变。
(2)同理,t=--x||--y&&--z
第一步:
t= (--x) || (--y&&--z);
因为||这个符号的优先级最低。
第二步:
--x; 执行完之后x=0;
(因为x=0,所以要执行||右边)
第三部:
||右边:(--y)&&(--z)
(&&优先级低于--)
第四部:
--y;执行完之后y=0;
(对于&&这个符号有个特点就是如果左边是零,那么直接就返回值了,不用执行右边了。因为没有意义,0与1还是0.)
第五部:
&左边是0,直接结束,t=0;
所以t=0,x=0,y=0;z没变。
首先是从左往右的。
t=++x||++y&&++z
第一步:
t= (++x) || (++y&&++z);
因为||这个符号的优先级最低。
第二步:
++x; 执行完之后x=2;
(对于||这个符号有个特点就是如果左边是非零,那么直接就返回值了,不用执行右边了。因为没有意义,1或0还是1.)
第三部:
||左边是非零,直接结束,t=1;
所以t=1,x=2;y和z没变。
(2)同理,t=--x||--y&&--z
第一步:
t= (--x) || (--y&&--z);
因为||这个符号的优先级最低。
第二步:
--x; 执行完之后x=0;
(因为x=0,所以要执行||右边)
第三部:
||右边:(--y)&&(--z)
(&&优先级低于--)
第四部:
--y;执行完之后y=0;
(对于&&这个符号有个特点就是如果左边是零,那么直接就返回值了,不用执行右边了。因为没有意义,0与1还是0.)
第五部:
&左边是0,直接结束,t=0;
所以t=0,x=0,y=0;z没变。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询