设int x=1,y=1;表达式(!x||y--)的值 是怎么 运算的。求解。

 我来答
iiiiiiiipl
2019-05-31 · TA获得超过9921个赞
知道答主
回答量:68
采纳率:66%
帮助的人:3.8万
展开全部

1.先算!x,结果为0;

2.再算y--,结果为1,y的值变为0;

3.再算逻辑或||,0或1,结果为1。所以最后结果为1

优先级:自减运算符>逻辑非运算符>逻辑或。

基本的优先级需要记住:

指针最优,单目运算优于双目运算,如正负号。

先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7。

逻辑运算最后结合。简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符。

扩展资料:

运算符计算的时候还要注意左结合性和右结合性:

C语言中各运算符的结合性分为两种:左结合性和右结合性。

例如:算术运算符的结合性是自左至右,即先左后右。

如有表达式x-y+z则y应先与“-”号结合,执行x-y运算,然后再执行+z的运算。这种自左至右的结合方向就称为“左结合性”。

而自右至左的结合方向称为“右结合性”。 最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z再执行x=(y=z)运算。

C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。(上文的优先级有分辨左右结合性)。

参考资料:

百度百科-运算符优先级

四舍五不入6
高粉答主

2019-11-17 · 醉心答题,欢迎关注
知道答主
回答量:147
采纳率:100%
帮助的人:2.1万
展开全部

1、先算!x,结果为0;

2、再算y--,结果为1,y的值变为0;

3、再算逻辑或||,0或1,结果为1。所以最后结果为1

优先级:自减运算符>逻辑非运算符>逻辑或。

基本的优先级需要记住:

指针最优,单目运算优于双目运算,如正负号

先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7。

逻辑运算最后结合。简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符。

扩展资料:

int函数

在一般的电脑中,int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1];

在之前的微型机中,int占用2字节,16比特,数据范围为-32768~32767[-2^15~2^15-1];

使用printf输出int占用字节数量:

printf("%d",sizeof(int));

除了int类型之外,还有short、long、long long类型可以表示整数。

unsigned int 表示无符号整数,数据范围为[0~2^32-1]。

参考资料来源:百度百科-INT (取整函数Int())

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
254181417
推荐于2017-11-25 · TA获得超过288个赞
知道答主
回答量:65
采纳率:0%
帮助的人:26.3万
展开全部
此问题主要是考察运算符的优先等级问题:
(!x||y--)中,括号等级最高为第一优先等级,所以先计算括号里面的内容;
逻辑运算符号 ! 和算术运算符号--为相同等级,为第二优先等级,逻辑或运算符号||为第12优先等级,故此语句的计算是这样的:先计算!X和y--,因为!x=0;y--=1,再计算||,也就是0||1,那么此时您应该知道结果是多少了,就是1,所以您所提的问题的运算顺序已经解决了。
希望能帮助到您,谢谢!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9c011d0
2012-03-20 · 超过32用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:96.7万
展开全部
涉及的知识点是C语言中运算符的优先级和结合性!
圆括号()的优先级是1,逻辑非 ! 和自减运算符 —— 的优先级是 2,逻辑或 || 的优先级是12。运算时先优先级大的,然后优先级小的。同优先级看结合性。
本题的结果是1,运算后X和Y的值分别是1和0 ;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式