C语言中,逗号的用法
各位大神,小弟刚开始学习,求个各位大神指教!问题:程序如下 :
inta;
a = 3*5,a*4
printf("a = %d\n",a);
但最后的运行结果是 : a = 15
按小甲鱼的说法应该是 : 60才对啊? 本帖最后由 mingcxx 于 2016-10-3 13:19 编辑
逗号运算符的优先级最低。
表达式1:a = 3*5
表达式2:a*4
所以(表达式1,表达式2)的值是表达式2的值,a*4 == 15 * 4 == 60
mingcxx 发表于 2016-10-3 13:18
逗号运算符的优先级最低。
表达式1:a = 3*5
表达式2:a*4
3Q,懂了!{:5_109:} 第二行后面的“;”呢? a = 3*5,a*4;
很鬼畜的一行代码,首先,编译器执行3*5,但不会赋值给a,接着a乘4。
然后,a压根儿就没有值啊……
居然还会通过?! 1314xxxxxx 发表于 2017-5-21 11:29
然后,a压根儿就没有值啊……
居然还会通过?!
赋值符 = 优先级比 , 高
这样子好理解一点:
a = 3*4 , 4*5;a=12
a = (3*4 , 4*5); a=20 #include<stdio.h>
void main(){
inta;
a=(a = 3*5,a*4);
printf("a = %d\n",a);
}
输出60
页:
[1]