鱼C论坛

 找回密码
 立即注册
查看: 2975|回复: 11

逗号运算符 求大家指教

[复制链接]
发表于 2012-8-4 01:18:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
鱼C前辈讲的逗号运算符,例题如下:
#include <stdio.h>
void main()
{
int x,y,a=2,b=4,c=6;
    y=(x=a+b),(b+c);
printf("y=%d,x=%d\n",y,x);
}
按鱼C前辈讲的,结果应该是y=10,x=6对吧。但是我运行的结果是y=6,x=6.
我试过 ,不管怎么改,总有x=y=a+b,根本就跟后边的没关系。可逗号运算符不是应该是把后边的值付给y的嘛。应该是
y=b+c,x=a+b啊。我听鱼C前辈就是这样讲的啊。  不懂,希望大家帮忙解答下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-4 01:19:21 | 显示全部楼层
这是鱼C前辈视频里的题,不理解,求教........
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-4 01:21:36 | 显示全部楼层
我又看了下视频,鱼前辈还是说是把后边的赋值给前边的,还用小手指着来着....迷惑啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-4 06:09:04 | 显示全部楼层
逗号运算符貌似没那功能~视频中大概不是这个意思吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-4 09:40:29 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-4 09:48:36 | 显示全部楼层
#include <stdio.h>

void main()
{
        int x,y,a=2,b=4,c=6;
        y=(x=a+b),(b+c);                //赋值运算符的优先级高于逗号运算符  所以这句等价于   y=x=a+b; b+c;  所以 y和x都=6
        printf("y=%d,x=%d\n",y,x);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-4 12:51:03 | 显示全部楼层
赋值运算符优先于逗号运算符,Y不可能为10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-4 12:53:04 | 显示全部楼层
谢谢大家啊......前辈的视频上少打了个括号,啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊纠结我好久,早上的时候已经明白了。不过还是谢谢大家啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-4 12:53:47 | 显示全部楼层
应该是  y=((x=a+b),b+c);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-4 14:26:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-8-4 20:56:45 | 显示全部楼层
学习气氛好浓厚,哈哈哈{:7_178:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-5 14:32:29 | 显示全部楼层
新人不努力,何时能吃旧人啊....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 06:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表