QQ登录

只需一步,快速开始

搜索
【活动】边做笔记边学习,还能赢取奖学金!
查看: 77|回复: 8

[已解决]逗号运算符问题 第16节课

[复制链接]
累计签到:110 天
连续签到:10 天
最佳答案
0 
发表于 2017-8-13 00:41:21 | 显示全部楼层 |阅读模式
1鱼币
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int a = 3, 5;

  5.         printf("a = %d\n", a);

  6.         return 0;
  7. }
复制代码


怎么证明 a 等于 表达式 N 的值。 图片里a = 3, 5;  a的值是5么?
我 int a = 3, 5;是报错的。。。。。。
8-12-3.png

最佳答案

查看完整内容

因为逗号运算符优先级很低,比赋值还低,那么先是赋值再是逗号运算符。a先取了3,剩下,5。因为没有定义变量,所以逗号运算符就被系统认为是分隔符,所以就像小甲鱼老师说的变成了a = 3; 5; 就是因为这样定义了一个常量,所以编译器会出错。要想先逗号运算符就要加上()。 加了()后程序的结果是5,无论逗号运算符多少个值,a还是取最后的那个值(这句话看备忘录截图有提到的)
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:47 天
连续签到:36 天
最佳答案
24 
发表于 2017-8-13 00:41:22 | 显示全部楼层    本楼为最佳答案   
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int a = (3, 5);  //这里要加括号

  5.         printf("a = %d\n", a);

  6.         return 0;
  7. }
复制代码


因为逗号运算符优先级很低,比赋值还低,那么先是赋值再是逗号运算符。a先取了3,剩下,5。因为没有定义变量,所以逗号运算符就被系统认为是分隔符,所以就像小甲鱼老师说的变成了a = 3; 5;  就是因为这样定义了一个常量,所以编译器会出错。要想先逗号运算符就要加上()。
加了()后程序的结果是5,无论逗号运算符多少个值,a还是取最后的那个值(这句话看备忘录截图有提到的)
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:82 天
连续签到:6 天
最佳答案
14 
发表于 2017-8-13 08:52:36 | 显示全部楼层
我觉得是不能在定义变量时赋值,这样就可以:
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int a;
  5.         a = 3,5;
  6.         printf("a = %d\n", a);
  7.         return 0;
  8. }
复制代码


不会报错
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:73 天
连续签到:70 天
最佳答案
261 
发表于 2017-8-13 08:56:14 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:110 天
连续签到:10 天
最佳答案
0 
 楼主| 发表于 7 天前 | 显示全部楼层
和vvv 发表于 2017-8-13 08:52
我觉得是不能在定义变量时赋值,这样就可以:

好的 谢谢
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:110 天
连续签到:10 天
最佳答案
0 
 楼主| 发表于 7 天前 | 显示全部楼层

非常感谢
怎么是实习斑竹
那个 谁呢  小仙 呢 不干了啊 哈哈 你的上一任
斑竹加油
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:110 天
连续签到:10 天
最佳答案
0 
 楼主| 发表于 7 天前 | 显示全部楼层
丶忘却的年少o 发表于 2017-8-13 09:44
因为逗号运算符优先级很低,比赋值还低,那么先是赋值再是逗号运算符。a先取了3,剩下,5。因为没有定 ...

还是这个解释比较适合我的问题 哈哈
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:47 天
连续签到:36 天
最佳答案
24 
发表于 7 天前 | 显示全部楼层
屁哥 发表于 2017-8-14 13:15
还是这个解释比较适合我的问题 哈哈

可能是新手看看问题角度不一样,然后新手和新手交流比较容易
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
累计签到:110 天
连续签到:10 天
最佳答案
0 
 楼主| 发表于 6 天前 | 显示全部楼层
丶忘却的年少o 发表于 2017-8-14 16:45
可能是新手看看问题角度不一样,然后新手和新手交流比较容易

哈哈
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /2 下一条

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-8-21 03:08 Powered by Discuz! X2.5 Theme by dreambred

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