社区
C语言
帖子详情
C语言优先级问题
NUC-94210
2012-07-12 09:40:16
问题,++a 和 a++ 一个是先++再引用,一个是先引用,再++。
b=a++; 等价于 b=a; a++;
但单目运算符 ++ 的优先级高于赋值运算符 = ,为什么不是这样: 而不是 b = (a++) ;
为何?
...全文
106
7
打赏
收藏
C语言优先级问题
问题,++a 和 a++ 一个是先++再引用,一个是先引用,再++。 b=a++; 等价于 b=a; a++; 但单目运算符 ++ 的优先级高于赋值运算符 = ,为什么不是这样: 而不是 b = (a++) ; 为何?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
NUC-94210
2012-07-12
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
所以运算依然是先 ++;然后在 =。
计算顺序:
auto t = a;
a = a + 1;
b = t; // a ++ 返回的是++ 之前的临时变量。所以 a++ 是不可引用的。
[/Quote]
可以这样理解。
NUC-94210
2012-07-12
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
b = a++;
就是 b = (a++);
但是 a++ 这个表达是返回的是++ 之前的 a; 所以 b 是等于 ++ 之前的 a 的。
[/Quote]
这个才是正解!!
Saleayas
2012-07-12
打赏
举报
回复
所以运算依然是先 ++;然后在 =。
计算顺序:
auto t = a;
a = a + 1;
b = t; // a ++ 返回的是++ 之前的临时变量。所以 a++ 是不可引用的。
Saleayas
2012-07-12
打赏
举报
回复
b = a++;
就是 b = (a++);
但是 a++ 这个表达是返回的是++ 之前的 a; 所以 b 是等于 ++ 之前的 a 的。
W170532934
2012-07-12
打赏
举报
回复
应该是返回左值的问题吧。
huimiezu
2012-07-12
打赏
举报
回复
照楼主的意思,单目运算符优先级高于=,那么b=++a和b=a++是没区别了
艳琦罗生
2012-07-12
打赏
举报
回复
a++ 返回a再做a+1
++a 返回 a+1
C语言
优先级
C语言
优先级
.doc
C语言
优先级
C语言
优先级
C语言
优先级
详尽列表
C语言
优先级
详尽列表,包含所有常用不常用的运算符
C语言
编程初级入门
C语言
很强大 优点: 十分灵活, 强大 短小, 精悍 语言简洁 共有32个关键字, 9种控制语句, 书写形式自由 缺点: 太灵活, 编程自由度大, 入门有一定困难 运算符和运算
优先级
过多 不适合写大的东西
C语言
优先级
顺口溜
本文介绍了
C语言
优先级
顺口溜,方便大家记忆,希望对大家的学习有所帮助。
C语言
优先级
在
C语言
的编程中,往往要注意
优先级
,不然程序运行就会出错
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章