-
基本运算符:
几个术语:数据对象、左值、右值和运算符
赋值表达式语句的目的是把值储存到内存位置上。用于储存值的数据存储区统称为数据对象,C标准只有在提到这个概念时才会用到对象这个术语。
标识对象的几种方法:使用变量名、指定数组的元素、结构的成员、使用指针表达式(指针中储存的是它所指向对象的地址)
左值是C语言的术语,用于标识特定数据对象的名称或表达式。对象指的是实际的数据存储,而左值是用于标识或定位存储位置的标签。
C标准新增了一个术语:可修改的左值,用于标识可修改的对象。所以,赋值运算符的左侧应该是可修改的左值,使用术语“对象定位值”更好。
右值指的是能赋值给可修改左值的量,且本身不是左值。
C用运算符表示算术运算,运算对象是运算符操作的对象。
赋值运算符:=
在C语言中,赋值运算符是“=”
a = 2; //把值2赋给变量a
“=”左边是一个变量名,右边是赋给这个变量的值
加法运算符:+
加法运算符用于加法运算,使其两侧的值相加
a = 1 + 1;
相加的值可以是变量,也可以是常量
int a = 1; int b = 3; c = a + b;
减号运算符:-
减号运算符用于减法运算,使其左侧的数减去右侧的数
a = 3 - 1;
加法运算符+和减法运算符-被称为二元运算符,即这些运算符需要两个运算对象才能完成
符号运算符:-和+
减号还可以用于标明或改变一个值的代数符号
a = -1; b = -a;
加号不会改变运算对象的值或符号
a = +1;
这种方式使用的加号和减号被称为一元运算符,即只需要一个运算对象
乘法运算符:*
符号*表示乘法
a = 1 * 3;
除法运算符:/
符号/表示除法,/左侧的值是被除数,/右侧的值是除数
浮点数除法的结果是浮点数,整数除法的结果是整数,整数是没有小数部分的数。
在C语言中,整数除法结果的小数部分被丢弃,这一过程称为截断
整数除法会截断计算结果的小数部分,不会四舍五入结果
混合整数和浮点数计算的结果是浮点数
实际上,计算机不能真正用浮点数除以整数,编译器会把两个运算对象转换成相同的类型,整数会被转换成浮点数
#include <stdio.h> int main(void) { printf("integer division: 5/4 is %d \n", 5 / 4); printf("integer division: 6/3 is %d \n", 6 / 3); printf("floating division 5./4. is %1.2f \n", 5. / 4.); printf("mixed division 5./4 is %1.2f \n", 5. / 4); return 0; }
运行结果
对于负数的整数除法,处理小数部分的方法是趋零截断,即直接丢弃小数部分
-3.8进行趋零截断转换成-3