C++运行问题

#include<iostream>usingnamespacestd;intmain(){inta;intb=3;intc=5;cout<<(a=b);cout<<a,... #include <iostream>
using namespace std;
int main()
{
int a;int b=3;int c=5;
cout<<(a=b)
;
cout<<a,b,c;
return 0;
}
为什么输出的是33,不是35呢,逗号表达式不是等于最右边那个吗
展开
 我来答
zhu_haishan
2011-03-04 · 超过36用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:87.8万
展开全部
首先你得了解逗号运算符.:c++提供一种特殊的运算符,逗号运算符,优先级别最低.
他优先级别最低.一定要记住他优先级是最低的哦.

至于前面 cout<<(a=b); 这个输出3毫无疑问.
后面cout<<a,b,c;我们就来分析下:
因为逗号运算符优先级最低,所以cout<<a,b,c;这个被拆分成:(cout<<a),b,c;
也就是他依然是输出:(cout<<a). 所以输出的结果 是33.
如果cout<<a,b,c;这个语句变成 cout<<(a,b,c);那么结果就是35.

再举个例子. a=5,b=6,c=7;
z=a,b,c;
这个z是多少呢?
如果了解了逗号运算符优先级最低,那么这个语句实际上是(z=a),b,c;
z其实是=a的.

可以理解吗?有什么问题的话随时来问我.
追问
谢谢高人了,你的qq多少能加你好友吗?
追答
123563105,备注要加一下哦
ziyang64
2011-03-04 · TA获得超过962个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:816万
展开全部
逗号的优先级是最低的,所以先cout<<a再是“,”。
你想要的是:cout<<(a,b,c);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
250431615
2011-03-04 · TA获得超过635个赞
知道小有建树答主
回答量:384
采纳率:0%
帮助的人:233万
展开全部
cout<<(a=b ) 把b赋值给a 输出a的值为3
cout<<a,b,c 逗号表达式的应用 输了第一个a后面的不输出 a为3
所以输出是33
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式