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呢,逗号表达式不是等于最右边那个吗 展开
using namespace std;
int main()
{
int a;int b=3;int c=5;
cout<<(a=b)
;
cout<<a,b,c;
return 0;
}
为什么输出的是33,不是35呢,逗号表达式不是等于最右边那个吗 展开
3个回答
展开全部
首先你得了解逗号运算符.: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的.
可以理解吗?有什么问题的话随时来问我.
他优先级别最低.一定要记住他优先级是最低的哦.
至于前面 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,备注要加一下哦
展开全部
逗号的优先级是最低的,所以先cout<<a再是“,”。
你想要的是:cout<<(a,b,c);
你想要的是:cout<<(a,b,c);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cout<<(a=b ) 把b赋值给a 输出a的值为3
cout<<a,b,c 逗号表达式的应用 输了第一个a后面的不输出 a为3
所以输出是33
cout<<a,b,c 逗号表达式的应用 输了第一个a后面的不输出 a为3
所以输出是33
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询