关于C语言中圆括号的使用
这使得关于C语言中圆括号的使用,c,operators,C,Operators,这使得c=b void main() int a,b,c; c=(a,b) 给出c=a 上述两种情况的原因是什么?在这一行: c=a,b c=(a,b) 括号的意思是,“首先计算表达式a,b,然后将值分配给c”。在这种情况下,分配了b,因为它是a,b的右侧表达式。在C中,从左到右求值,总值为最右边表达式的值 在这一行中: c=a,b c=(a,b) 赋值首先作为整个左手边进行计算,即c=a。这是因为equal=运算符优先于逗号,运算符。因此,b根本不会被分配到c。这相当于: c=a
c=b
void main()
int a,b,c;
c=(a,b)
给出c=a
上述两种情况的原因是什么?在这一行:
c=a,b
c=(a,b)
括号的意思是,“首先计算表达式a,b
,然后将值分配给c
”。在这种情况下,分配了b
,因为它是a,b
的右侧表达式。在C中,从左到右求值,总值为最右边表达式的值
在这一行中:
c=a,b
c=(a,b)
赋值首先作为整个左手边进行计算,即c=a
。这是因为equal=
运算符优先于逗号,
运算符。因此,b
根本不会被分配到c
。这相当于:
c=a,b
在这方面:
c=a,b
c=(a,b)
括号的意思是,“首先计算表达式a,b
,然后将值分配给c
”。在这种情况下,分配了b
,因为它是a,b
的右侧表达式。在C中,从左到右求值,总值为最右边表达式的值
在这一行中:
c=a,b
c=(a,b)
赋值首先作为整个左手边进行计算,即c=a
。这是因为equal=
运算符优先于逗号,
运算符。因此,b
根本不会被分配到c
。这相当于:
c=a,b
在C语言中,逗号运算符计算第一个操作数,然后放弃它,然后计算右操作数。所以结果就是正确的操作数。它的优先级最低
(c=a),b
c=(a,b)
()的优先级高于,因此a、b首先求值。结果是b。所以c=b
但当使用c=a时,b赋值=具有更高的优先级。所以c=a首先求值。因此a被分配给c
查看更多详细信息 在C语言中,逗号运算符计算第一个操作数,然后放弃它,然后计算右操作数。所以结果就是正确的操作数。它的优先级最低
(c=a),b
c=(a,b)
()的优先级高于,因此a、b首先求值。结果是b。所以c=b
但当使用c=a时,b赋值=具有更高的优先级。所以c=a首先求值。因此a被分配给c
查看更多详细信息 不要使用
void main()
-人们会为此感到不安。标准是intmain(void)
或intmain(intargc,char**argv)
。缺少main的括号{}。不要使用void main()
-人们对此感到不安。标准是intmain(void)
或intmain(intargc,char**argv)
。缺少main的括号{}。