int x=1,y=1,表达式(!x‖y--)的值是多少

如题所述

这个问题不算难,我来吧。求这个表达式的值,关键是要清楚运算符的优先级。在C语言中,单目运算符(即只有一个操作数)的优先级一般高于双目运算符,!的优先级高于ll,表达式从左往右计算(当然有些编译器从右往左计算,不过这并不影响),!1就是0,y--这个表达式先把y作为返回值送出去,再进行自减。所有就是0ll1,表达式的值就是1,运算结束后y的值为零。追问

为什么y--是1呢

追答

因为y--这个在编译器中的运算过程具体来说就是三步,先把y复制一份到特定缓冲区,然后对y进行自减改变y的值,最后一步是把已复制到缓冲区的原先的y值作为返回值送出去参与运算。明白了吗

温馨提示:内容为网友见解,仅供参考
无其他回答

int x=1,y=1,表达式(!x‖y--)的值是多少
1就是0,y--这个表达式先把y作为返回值送出去,再进行自减。所有就是0ll1,表达式的值就是1,运算结束后y的值为零。

设int x=2,y=1;,表达式(!x||y--)的值是___。
楼主您好!该表达式的值是1。分析:运算顺序是,先对X取逻辑非(结果是0),然后将Y的值代入进行逻辑或运算(结果是1)注:因为这个地方是后缀运算,所以是先用值在运算,最后是括号。所以答案是1。注:此时Y的值是0。

若有定义“int x=1,y=1;",表达式(!x||y- -)的值是? 请说明怎么计算
||结果是1。||两边只要有一边为“真”就取1,因为!x==0,所以还要计算||右边的y--,而y--先用值后--,y的值是1为“真”,所以整个表达式的值就为“真”即1。而后才对y作--操作使其值变为0。根据运算符优先级和结合性可知,原式等效于 ((!x)||(y--))对于子表达式代入xy值可知 !...

设int x=1, y=1; 表达式(!x||y--)的值是 要说明方法
((!x)||(y--))对于子表达式代入xy值可知 !x值为0(假)y--,由于是自减运算符后缀,所以表达式值为y的原值1(真)所以整个表达式值为1(真)例如:逻辑运算的表达式,非0即1。!x的结果是0 y--的结果是1 0跟1逻辑或的结果是1

设int x=1, y=1; 表达式(!x||y--)的值是
!x=0 !x||y=1 (!x||y--)=1(其中y=0)

设int x=1,y=1;表达式(!x||y--)的值 是怎么 运算的.
(!x||y--)中,括号等级最高为第一优先等级,所以先计算括号里面的内容;逻辑运算符号 !和算术运算符号--为相同等级,为第二优先等级,逻辑或运算符号||为第12优先等级,故此语句的计算是这样的:先计算!X和y--,因为!x=0;y--=1,再计算||,也就是0||1,那么此时您应该知道结果是多少了,就是1,...

C语言问题,设 int x=1, y=1; 表达式(!x||y--)的值是()。答案怎么是1呀...
逻辑运算的表达式,非0即1。!x的结果是0 y--的结果是1 0跟1逻辑或的结果是1

c语言中intx=1,y=1,!x||y――的值
首先x=1,为真 其次y=1,为真 x||y的意思是,如果有一个为真,那么都是真 因为x和y都是真,所以x||y都是真。但是这里有一个优先级的问题。!的意思是非,也就是说,如果一个真的值前面加一个!,那么他就是假,如果一个假的值前面加一个!,那么他就是真。 比如!1就是0,!0就是...

int x=1,y=1 (!x&&y--) y的值
(!x&&y--) 与运算中,前者为0,整个表达式就是0,后者便不再计算。所以,y=1

设int x=1,y=1;表达式(!x++ || y––)的值是
表达式(!x++ || y––)的值是1 分析:因为对于后缀的++与--是先取变量的值,再对变量进行自加与自减 !x++等价于!x,然后对x加1,y--等价于y,然后对y减1 即(!1 || 1),结果当然是1

相似回答