逗号运算符问题 第16节课
#include <stdio.h>int main()
{
int a = 3, 5;
printf("a = %d\n", a);
return 0;
}
怎么证明 a 等于 表达式 N 的值。 图片里a = 3, 5;a的值是5么?
我 int a = 3, 5;是报错的。。。。。。 #include <stdio.h>
int main()
{
int a = (3, 5);//这里要加括号
printf("a = %d\n", a);
return 0;
}
因为逗号运算符优先级很低,比赋值还低,那么先是赋值再是逗号运算符。a先取了3,剩下,5。因为没有定义变量,所以逗号运算符就被系统认为是分隔符,所以就像小甲鱼老师说的变成了a = 3; 5;就是因为这样定义了一个常量,所以编译器会出错。要想先逗号运算符就要加上()。
加了()后程序的结果是5,无论逗号运算符多少个值,a还是取最后的那个值(这句话看备忘录截图有提到的){:10_275:} 我觉得是不能在定义变量时赋值,这样就可以:
#include <stdio.h>
int main()
{
int a;
a = 3,5;
printf("a = %d\n", a);
return 0;
}
不会报错 和vvv 发表于 2017-8-13 08:52
我觉得是不能在定义变量时赋值,这样就可以:
好的 谢谢 ba21 发表于 2017-8-13 08:56
非常感谢
怎么是实习斑竹
那个 谁呢小仙 呢 不干了啊 哈哈 你的上一任
斑竹加油 丶忘却的年少o 发表于 2017-8-13 09:44
因为逗号运算符优先级很低,比赋值还低,那么先是赋值再是逗号运算符。a先取了3,剩下,5。因为没有定 ...
还是这个解释比较适合我的问题 哈哈 屁哥 发表于 2017-8-14 13:15
还是这个解释比较适合我的问题 哈哈
可能是新手看看问题角度不一样,然后新手和新手交流比较容易{:10_340:} 丶忘却的年少o 发表于 2017-8-14 16:45
可能是新手看看问题角度不一样,然后新手和新手交流比较容易
哈哈
页:
[1]