关于C语言的语法运算理解...求帮忙
2个回答
展开全部
1.这里涉及到“表达式短路”的问题。C语言中有这么一种机制,如果表达式的值已经能确定的话,那么后面对此表达式的值无影响的数据不会再运算。t=++x||++y&&++z,由于++x的值为2,而||的左右只要有一项为真的话那么整个表达式的值为真,所以++y&&++z没有再运算。所以t=1,x=2,y=z=1.
换个位置:如果t =
++y&&++z||++x;++y为2,由于&&要两边都为真才为真,所以还要计算++z,为2,所以++y&&++z为真,即1,后面的++x不用再计算,所以t=1,x=1,y=z=2;
2.>>这是右移运算符,x>>=2即x右移两位。
x=012为八进制,化成二进制就是:1010,右移两位,即0010,为2
换个位置:如果t =
++y&&++z||++x;++y为2,由于&&要两边都为真才为真,所以还要计算++z,为2,所以++y&&++z为真,即1,后面的++x不用再计算,所以t=1,x=1,y=z=2;
2.>>这是右移运算符,x>>=2即x右移两位。
x=012为八进制,化成二进制就是:1010,右移两位,即0010,为2
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询