鱼C论坛

 找回密码
 立即注册
查看: 2113|回复: 9

求大神解释,c语言

[复制链接]
发表于 2014-1-22 13:23:55 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>

void main()
{
        int a=2,b=4,c=6,x,y;
        y=(x=a+b),(b+c);
        printf("y=%d,x=%d",y,x);
}
小甲鱼视频中说把b+c的值赋给y,那y应该是10,为什么编译出来y=6呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-22 13:39:27 | 显示全部楼层
本帖最后由 牡丹花下死做鬼 于 2014-1-22 13:41 编辑

楼主你纠结逗号表达式干嘛啊 谁吃饱了撑着写程序用这个啊
y=(x=a+b),(b+c); /code]
这个你的电脑上市自右向左的吧 就等于
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-22 13:41:49 | 显示全部楼层
x = a + b;
y = x;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-22 14:07:18 | 显示全部楼层
楼主你好:
      1.那期视频我也看了,当时就觉得鱼哥可能是口误,说实话,测试结果也是跟你一样,当时我自己去查了一下,逗号运算符是优先级最低的运算符,顺序从左到右运算,赋值运算符优先级高于逗号运算符,也就是先赋值,再计算逗号,赋值的结果是把a+b的值赋给x,再把x的值赋给y(赋值运算符从右往左运算,并且有括号,这个楼主自己去想想就能明白),再计算逗号,这时没有赋值,仅计算表达式的值,得出的结果不存储到任何变量(也许暂存到缓存,谁知道呢,反正没有任何已定义的变量接受这个值),所以结果是6是正确的;
      2.我觉得没有人会给自己找麻烦这么写代码,我的习惯是赋值再简略,也一个一个的赋,连等赋值容易出现不可知的问题,另外,多用括号是个好习惯.........这只是个人建议,当然楼主要是真喜欢这样也无妨
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-25 22:05:20 | 显示全部楼层
不明白逗号干什么用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-5 01:29:05 | 显示全部楼层

没有鱼币下载不了:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-5 09:59:59 | 显示全部楼层

正解!!!!说的很好!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-5 10:28:58 | 显示全部楼层
好像可以将","改成"="来着
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-8 20:40:25 | 显示全部楼层
路过看看 = =
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-9 11:03:20 | 显示全部楼层
同求啊,这个问题也困扰我许久了~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-9 19:41:58 | 显示全部楼层
或许是小甲鱼口误么?
首先跟4楼说的一样运算符的优先级不同~
而且赋值的话一般来说第二次赋值会覆盖第一次赋值的,因为赋值是从右到左的所以Y是6~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-9 19:44:03 | 显示全部楼层
谓我心忧 发表于 2014-2-9 11:03
同求啊,这个问题也困扰我许久了~~

其实这些问题不用那么在意吧~除了应付考试外编程基本都不会这么用的~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-23 14:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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