QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

主题

帖子

荣誉

VIP至尊会员

Rank: 15Rank: 15Rank: 15

积分
365
查看: 187|回复: 8

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

[复制链接]
最佳答案
0 
累计签到:127 天
连续签到:1 天
屁哥 发表于 2017-8-13 00:41:21 1878 | 显示全部楼层 |阅读模式
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;是报错的。。。。。。
最佳答案
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还是取最后的那个值(这句话看备忘录截图有提到的)
8-12-3.png

最佳答案

查看完整内容

因为逗号运算符优先级很低,比赋值还低,那么先是赋值再是逗号运算符。a先取了3,剩下,5。因为没有定义变量,所以逗号运算符就被系统认为是分隔符,所以就像小甲鱼老师说的变成了a = 3; 5; 就是因为这样定义了一个常量,所以编译器会出错。要想先逗号运算符就要加上()。 加了()后程序的结果是5,无论逗号运算符多少个值,a还是取最后的那个值(这句话看备忘录截图有提到的)
楼层
跳转到指定楼层
最佳答案
223 
累计签到:163 天
连续签到:11 天
丶忘却的年少o 发表于 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还是取最后的那个值(这句话看备忘录截图有提到的)
最佳答案
17 
累计签到:188 天
连续签到:7 天
和vvv 发表于 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. }
复制代码


不会报错
最佳答案
531 
累计签到:189 天
连续签到:18 天
ba21 发表于 2017-8-13 08:56:14 | 显示全部楼层
2017-08-13_085424.png
最佳答案
0 
累计签到:127 天
连续签到:1 天
屁哥  楼主| 发表于 2017-8-14 13:13:54 | 显示全部楼层
和vvv 发表于 2017-8-13 08:52
我觉得是不能在定义变量时赋值,这样就可以:

好的 谢谢
最佳答案
0 
累计签到:127 天
连续签到:1 天
屁哥  楼主| 发表于 2017-8-14 13:15:15 | 显示全部楼层

非常感谢
怎么是实习斑竹
那个 谁呢  小仙 呢 不干了啊 哈哈 你的上一任
斑竹加油
最佳答案
0 
累计签到:127 天
连续签到:1 天
屁哥  楼主| 发表于 2017-8-14 13:15:48 | 显示全部楼层
丶忘却的年少o 发表于 2017-8-13 09:44
因为逗号运算符优先级很低,比赋值还低,那么先是赋值再是逗号运算符。a先取了3,剩下,5。因为没有定 ...

还是这个解释比较适合我的问题 哈哈
最佳答案
223 
累计签到:163 天
连续签到:11 天
丶忘却的年少o 发表于 2017-8-14 16:45:20 | 显示全部楼层
屁哥 发表于 2017-8-14 13:15
还是这个解释比较适合我的问题 哈哈

可能是新手看看问题角度不一样,然后新手和新手交流比较容易
最佳答案
0 
累计签到:127 天
连续签到:1 天
屁哥  楼主| 发表于 2017-8-15 01:44:57 | 显示全部楼层
丶忘却的年少o 发表于 2017-8-14 16:45
可能是新手看看问题角度不一样,然后新手和新手交流比较容易

哈哈

发表回复

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

本版积分规则

关闭

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

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2017-12-16 22:39

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