第二章——C程序设计的初步知识 第七节——赋值表达式的求值规则
赋值运算
赋值符号“=”就是赋值运算符,它的作用是将一个表达式
的值赋给一个变量。赋值运算符的一般形式为:
1 | 变量名 = 表达式 |
如果表达式值的类型,与被赋值变量的类型不一致,但都是数值型或字符型时,系统自动地将表达式的值转换成被赋值变量的数据类型,然后再赋值给变量.
几点说明
- 赋值运算符的优先级只高于逗号运算符,比其它的运算符优先级都低,且具有自右向左的结合性。
- 赋值运算符不是数学中的“等于号”,而是进行“赋予”操作。
- 表达式x=y读作“将y的值赋给变量x”而不读作”x等于y“
- 赋值运算符左边只能是变量,不能是常量或是表达式。如a+b=c就是错误的。
- 赋值运算符右边也可以是赋值表达式。如a=b=7+1,而a=7+1=b则是错误的。
- “=”视作运算符,a=19是一个表达式,C语言规定最左边变量中所得到的新值就是赋值表达式的值。
复合赋值表达式
复合赋值运算符是由赋值运算符之前再加一个双目运算符构成的。一般格式为:
此表达式等价于:变量 = 变量 双目运算符(表达式)
当表达式为简单表达式时,表达式外的一对圆括号才可缺省,否则可能
出错。
例如:
1 | a += 5; // 等价于 a = a + 5; |
说明
- 结合方向:赋值运算符的结合方向是自右向左。
- 左侧必须是变量,不能是常量或者表达式。
- 赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型。
- 赋值表达式的值与变量值相等,且可嵌套,例如:
1 | a=b=c=5 //表达式值为5,a,b,c值为5 |
赋值运算中的类型转换
在C语言的赋值表达式中,赋值号右边的值先转换成与左边的变量相同的类型,然后进行赋值。
注意
- 当赋值号左边的变量为短整型,右边的值为长整型时,短整型变量只能接受长整型数据低位上的两个字节的数据,高位上的数据将丢失。也就是说,右边的值不能超过短整型的数值范围。即长整型假设4字节,共有32位,短整型假设2字节,共16位,那么短整型只接受32位的后一半,低16位上的数据,高16位直接丢失。
- 当赋值号左边的变量为无符号整型,右边的值为有符号整型时,则把内存中的内容原样复制。右边数据的范围不应超出左边变量可以接受的数据范围。同时要注意,这时负数将转换为正数。
- 当赋值号左边的变量为有符号整型,右边的值为无符号整型时,复制的机制同上,这时,若符号位为1,将按负数处理。
- 标题: 第二章——C程序设计的初步知识 第七节——赋值表达式的求值规则
- 作者: 亓翎_Re-Tikara
- 创建于 : 2026-02-07 02:21:28
- 更新于 : 2026-02-07 02:26:19
- 链接: https://re-tikara.fun/Blog/posts/d316f5f1/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。