携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情
C语言用运算符表示算数运算。用于基本算数运算的运算符:=,+,-,* 和 /。(虽然C没有指数运算符,但有pow()函数用于指数运算。)
几个术语:数据对象,左值,右值和运算符
- 数据对象:用于储存值的数据存储区域。
赋值表达式语句的目的是把值存储到内存位置上。而存储值的数据区域叫数据对象。
-
左值:用于标识特定数据对象(实际的数据存储)的名称或表达式。
-
对象定位值(可修改左值):用于标识可修改对象。
-
右值:能赋值给可修改左值的量,且本身不是左值。例如:
bmw = 2456; 这里,bmw是可修改的左值,2456是右值。右值可以是常量,变量或其他可求的表达式(例如函数调用)
- 运算对象:被称为“项”。
运算对象是运算符操作的对象。例如:可以把吃汉堡描述为:“吃”运算符操作“汉堡”运算对象。可以说,=运算符的左侧运算对象应该是可修改的左值。
赋值运算符 =
在c语言中,=不意味着“相等”,而是一个赋值运算符。例如下面的赋值表达式语句:
bmw = 2123;
把值2123赋给变量bmw。也就是说,=号左边是一个变量名,右侧是赋给该变量的值。符号=被称为赋值运算符。另外,上面的语句不读“bmw等于2123”而是“把2123赋值给bmw”。且赋值行为从右往左进行。也许变量名和变量值的区别微乎其微,例如下面这个语句:
i = i + 1;
对于数学而言,这是不对的。如果给有限的数加1,它不可能“等于”原来的数。但是,在C语言赋值表达式语句中是合理的。这句话可以理解为:找出变量i的值,把该值加1,然后把新值赋值给变量i。
在C语言中,类似于2987 = bed; 因为在这种情况下,2987被称为右值,只能是字面常量。不能给常量赋值,常量本身就是它的值。因此,在编写代码时要记住,=号左侧的项必须是一个变量名。
注意:赋值的顺序是从左往右的。