永发信息网

关于c语言中的逗号运算符???

答案:7  悬赏:0  手机版
解决时间 2021-01-28 10:10
关于c语言中的逗号运算符???
最佳答案
逗号运算符( , )是C语言运算符中优先级最低的一种运算符,结合顺序是从左至右,用来顺序求值(最后一个逗号后面表达式的值作为整个表达式的值)。

下面举例说明逗号运算符的使用方法:
int a=3, b=5, c;c = a>b, a+b; // 运行后c值为0,因为逗号运算符的优先级低于赋值运算符,所以先将a>b的结果(为0)赋值给c,之后运算a+b(结果不保存),所以c=0c = (a>b, a+b); // 运行后c值为8,因为括号的优先级高于赋值运算符,所以先算括号内的表达式,此时计算结果为最后一个表达式的值,即a+b的值,所以c=8
全部回答
肯定是500啦,逗号运算符只取最后一个表达式的值作为整条语句的值。
逗号运算符将最后一项的值作为整个逗号表达式的值
逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式。
逗号运算符的优先级是所有运算符中级别最低的,所以x=(200,500)先运算(200,500),200之后是500,所以x=500咯。
如果表达式是这样x=(3+4,4+7),x最后结果是4+7,即x=11。
可参考:http://see.xidian.edu.cn/cpp/html/27.html
可以这样理解,逗号表示一种顺序。
对比下面两个表达式会更加清晰:
x = x + 10, x * 3;
x = (x + 10, x * 3);
假设x初始值为10.
对于第一个表达式,相当于:
x = x +10;
x = x * 3;
此时x是(10 + 10) * 3 = 60.
对于第二个表达式,
(x + 10, x * 3)相当于:
x + 10
x * 3
所以其返回值为x * 3,即 10 * 3 = 30,
所以此时x是30.
在C种 逗号可以当作运算表达式来计算
举例 x=(x=1,x=x+1,x+2) 它是从左自右计算的,等同于先将X赋值为1,然后计算X+1=1+1=2,最后 2+2=4,返回的是4
而你看的这本书估计根本就没怎么详细讲
当X=(200,500,600) 时 ,X先为200,随后又为500,最后又为600,因为没有赋值操作,所以200和500就被覆盖了
等下。。答错了。。还需要理解一下神马是逗号表达式。。我前面说的和uuyyhhjj与delta_charlie的意思一样,但其实我们都搞错了。你可以自己把我们的例子都运行一下,看看是不是这样。下面我感觉应该是我正确的理解。
逗号表达式是所有运算符中优先级最低的,比赋值运算符还要低。他的作用就是把每个表达式都算一遍,并且把最后一个表达式返回的值作为逗号表达式的值。(把其他的都不管了)
像你说的那个,如果是
x=200,500;
(没有括号),x就会等于200,然后上面整个式子的值是500。
但是有括号的话, (200,500) 就是一个单独的式子,他的值是500,所以x=(200,500)最后赋值给x就是500
举几个例子,
x=(21,22,23,24,25);
这个里面,先算括号里的,前面的21到24算过后都被丢弃,括号里的表达式的值是25。之后执行赋值运算,x的值就变成括号里表达式的值,25了。
如果编译
int x;
int a;
x=(21,22,23,24,25);
cout<<"x="<会输出
x=25
x=21,22,23,24,25;
这行整个是一个表达式。
逗号运算符会分别计算表达式x=21、22、23 、24、25(单独一个数字也可以叫做表达式)。
然后他会用最后一个表达式作为逗号表达式的值。所以整个式子(整个一行)的值是25。但是因为这个值并没有返回给别的变量,他就也被丢弃了。
如果编译
int x;
x=21,22,23,24,25;
cout<输出是21。
a=(x=21,22,23,24,25);
这个里面,除了给x赋值,它又把逗号表达式的值25赋给a。
如果编译
int x;
int a;
a=(x=21,22,23,24,25);
cout<<"x="< cout<<"a="<会输出
x=21
a=25
a=(x=21,22,23,24,x*25);这个里,赋值给x之后又利用x计算了逗号表达式的值,21*25,最后把这个值赋给a
如果编译
int x;
int a;
a=(x=21,22,23,24,x*25);
cout<<"x="<cout<<"a="<会输出
x=21
a=525
简单来说,逗号的作用就是执行每一个表达式,然后用最后一个表达式作为他它的值。
看这个可能可以帮助你理解 http://blog.csdn.net/great_ghoul/article/details/1779768
如有疑问,欢迎您的追问。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
阿里巴巴上批发玩具 便宜吗 还是市场上便宜
为什么尿素溶液发凉
【精诚中学】英语翻译六年前刚刚踏进精诚中学
脸瘦是什么原因造成的
新白娘子传奇老头划船歌曲是什么
坐腊的意思是什么啊?知道的请说下!
我的电脑CPU温度只有3度,是为什么?请高手指教
是不是所有的设计院都会用到电气专业的?无论
在家胸肌怎么练
奥迪a6l遥控电池突然没电 钥匙孔在哪里
潮鼓的意思是什么啊?知道的请说下!
【工长君】求解工长君和姚仙。。。什么关系了
如何理解GDP和福利水平之间的关系
找个可以录DNF视频的软件
谁有《双恋》 雷·约瑟番外 作者:蛋蛋1113
推荐资讯
哪里能下载老电影啊,不要在线观看,要下载的
塔里木盆地最丰富的矿产资源是A. 有色金属B.
魔兽世界6.2.3林地守卫者怎么获取
电脑能上网,但是暴风看不了电影LOL服务器连
美国亚马逊能用开通多币种的借记卡支付吗?
proteus中一位共阳数码管的元件号是什么啊?
大聘的意思是什么啊?知道的请说下!
赇谒的意思是什么啊?知道的请说下!
【180区间】...2x)x属于0度到180度的递增的区
芳婷电脑干洗店地址好找么,我有些事要过去
请问武大08级学生证里面的个人信息和学号专业
中国联通(田坪镇中街)怎么去啊,我要去那办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?