C语言中的表达式、语句与控制结构详解
1. 逗号运算符与表达式求值
逗号运算符在所有运算符中优先级最低。在表达式 x = 2.7, sqrt( 2*x )
里,会先进行赋值操作 x = 2.7
,再调用 sqrt()
函数,整个表达式的值就是该函数的返回值。
若要将逗号运算的结果用于另一个赋值操作,就需要使用括号。例如:
y = ( x = 2.7, sqrt( 2*x ));
此语句会把 5.4
的平方根赋值给 y
。
在初始化列表或函数参数列表里,逗号是列表分隔符,而非逗号运算符。不过,可通过将表达式用括号括起来来使用逗号运算符,如:
y = sqrt( (x=2.7, 2*x) );
这个语句和前面的例子等价。逗号运算符能把多个表达式组合成一个,这在 for
循环头部初始化或递增多个变量时很有用,示例如下:
int i; float fArray[10], val;
for ( i=0, val=0.25; i < 10; ++i, val *= 2.0 )
fArray[i] = val;
2. 常量表达式
编译器能识别源代码中的