c语言赋值语句规则
由于在赋值符“=”右边的表达式也可以又是一个赋值表达式, 因此,下述形式 变量=(变量=表达式); 是成立的,从而形成 嵌套的情形。 其展开之后的一般形式为:变量=变量=…=表达式; 例如: a=b=c=d=e=5; 按照赋值运算符的右接合性,因此实际上等效于: e=5; d=e; c=d; b=c; a=b;
注意在变量==说明==中给变量赋初值和赋值语句的区别。 给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。 例如: int a=5,b,c;
在变量说明中,不允许连续给多个变量赋初值。 如下述说明是错误的: int a=b=c=5 必须写为 int a=5,b=5,c=5; 而赋值语句允许连续赋值。
注意赋值表达式和赋值语句的区别。 赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。
下述语句是合法的:
if((x=y+5)>0) z=x;
这里(x=y+5)是赋值表达式,语句的功能是,若表达式x=y+5大于0则z=x。
c语言赋值规则
赋值语句是由赋值表达式再加上分号构成的表达式语句。 其一般形式为: 变量=表达式;
在赋值语句的使用中需要注意以下几点:
由于在赋值符“=”右边的表达式也可以又是一个赋值表达式, 因此,下述形式 变量=(变量=表达式); 是成立的,从而形成 嵌套的情形。 其展开之后的一般形式为:变量=变量=…=表达式; 例如: a=b=c=d=e=5; 按照赋值运算符的右接合性,因此实际上等效于: e=5; d=e; c=d; b=c; a=b;
注意在变量==说明==中给变量赋初值和赋值语句的区别。 给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。 例如: int a=5,b,c;
在变量说明中,不允许连续给多个变量赋初值。 如下述说明是错误的: int a=b=c=5 必须写为 int a=5,b=5,c=5; 而赋值语句允许连续赋值。
注意赋值表达式和赋值语句的区别。 赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。
下述语句是合法的: if((x=y+5)>0) z=x;
这里(x=y+5)是赋值表达式,语句的功能是,若表达式x=y+5大于0则z=x。
下述语句是非法的:
if((x=y+5;)>0) z=x;
因为x=y+5;是语句,不能出现在表达式中。
C语言中的赋值规则如下:
1. 赋值符号为“=”。
2. 赋值顺序是从右往左计算,即先计算等号右边的表达式,再将结果赋给等号左边的变量。
3. 变量的类型必须与表达式的类型兼容。
4. 赋值运算符的优先级较低,通常需要使用括号明确表达式的计算顺序。
5. 复合赋值运算符(如“+=”、“-=”等)可以简化赋值操作,例如“a+=1”相当于“a=a+1”。
6. 赋值运算具有右结合性,即赋值运算符从右向左依次执行,例如“a=b=c=10”相当于“c=10;b=c;a=b;”。
需要注意的是,赋值语句中不能使用常量作为左值,因为常量是只读的,无法改变其值。