C编程从入门到实践
上QQ阅读APP看书,第一时间看更新

6.1.2 赋值语句

赋值语句是由赋值表达式加上分号构成的表达式语句,其一般格式如下所示。

    变量=表达式;

赋值语句的功能和特点与赋值表达式相同,是程序中使用最多的语句之一。但是读者在具体使用赋值语句时,需要注意以下4点。

(1)因为在赋值符“=”右边的表达式可以是一个赋值表达式,所以下述的形式是正确的:

    变量=(变量=表达式);

上述作法就形成了嵌套格式。

将其展开之后,一般格式如下。

    变量=变量=…=表达式;

例如下面的语句:

    a=b=c=d=e=10;

按照赋值运算符的右结合性,上述语句实际上等效于下面的语句。

    e=10;
    d=e;
    c=d;
    b=c;
    a=b;

(2)注意在变量说明中给变量赋初值和赋值语句的区别。

给变量赋初值是变量说明的一部分,赋值后的变量与其后的其他同类变量之间仍要用逗号来分隔,而赋值语句则必须用分号“;”结尾。例如下面的语句。

    int a=100, b, c;

(3)在变量说明中,不允许连续给多个变量赋初值。例如下面的代码是错误的。

    int a=b=c=10

它必须修改为如下格式。

    int a=10, b=10, c=10;

而赋值语句允许连续赋值。

(4)注意赋值表达式和赋值语句的区别。

赋值表达式是一种表达式,它可以出现在任何允许有表达式的地方,而赋值语句则不能。例如下面的代码是合法的。

    if((x=y+10)>0) z=x;

上述代码的功能是,如果表达式x=y+100大于0,则z=x。而下面的代码是非法的:

    if((x=y+10; )>0) z=x;

因为“x=y+10;”是语句,所以不能出现在表达式中。