鱼C论坛

 找回密码
 立即注册
查看: 4972|回复: 3

逗号表达试

[复制链接]
发表于 2012-6-25 00:32:16 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 xuaner0719 于 2012-6-25 09:55 编辑

#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\n", y, x);

}

不是y=10,x=6吗
QQ截图20120625003901.jpg
求解
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-25 00:51:34 | 显示全部楼层
赋值符号的优先级比逗号表达式高,所以执行完x=a+b后,将x的值赋给y,不在执行逗号后面的表达式
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-6-25 00:59:14 | 显示全部楼层
  1. #include <stdio.h>

  2. void main()
  3. {
  4.    int a = 2, b = 4, c = 6, x, y;

  5.    y = (x=a+b), (b+c);                //这里相当于是   先执行(x=a+b) 然后把值复制给y ,然后在执行 b+c 但是执行这句没用
  6.                                                         //如果你写成y=((x=a+b),(b+c));  这样 y=10, x=6咯

  7.    printf("y=%d,x=%d\n", y, x);
  8. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-4 16:59:01 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-13 21:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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