C语言 运算符
基本运算符
赋值运算符:=
在C语言中,=并不意味着相等,而是一个赋值运算符,例如:、
int a=100;
//把值100赋予变量a,复制行为从右向左进行,将右侧的值赋给左侧的变量
赋值表达式的目的是将值储存到内存位置上,用于储存值的数据储存区域统称为 数据对象
C 标准中只有涉及到这个概念时才会用到 对象 这个术语,使用变量名是标识对象的一种方法,除此之外还有其他办法,例如可以指定数组中的元素,结构体的成员,指针表达式
左值右值
左值:表示一个有明确内存位置的对象,可以出现在赋值运算符的左侧
右值:表示一个 临时值,只能出现在赋值运算符的右侧。
核心区别:
特性 | 左值 | 右值 |
---|---|---|
内存地址 | 明确且固定 | 临时存在 |
赋值操作位置 | 可以出现在= 左侧 | 只能出现在= 右侧 |
修改 | 可以修改(除非const 修饰) | 否 |
取地址 | 可以 | 否 |
+ - * /运算符
在C语言中,+
-
*
/
是四种基本的算术运算符,分别用于加法、减法、乘法和除法操作。
加法运算符+
作用:计算两个数的和
int a = 10, b = 5;
int c = a + b; // c的值为15
可用于整数和浮点数
也可用于字符串拼接(需使用库函数如strcat)
减法运算符-
作用:计算两个数的差
int a = 10, b = 5;
int c = a - b; // c的值为5
可用于整数和浮点数
也可用于单目运算(取负数)
乘法运算符*
作用:计算两个数的乘积
int a = 10, b = 5;
int c = a * b; // c的值为50
可用于整数和浮点数
注意数据溢出问题(如int类型超出范围)
除法运算符/
作用:计算两个数的商
int a = 10, b = 5;
int c = a / b; // c的值为2
整数除法会 截断小数部分(向下取整)
浮点数除法会保留小数部分
除数为0会导致运行时错误(程序崩溃)
运算符优先级
运算符优先级(从高到底)
运算符 | 结合顺序 |
---|---|
() | 从左到右 |
+ - (一元) | 从右往左 |
* / | 从左往右 |
+ - (二元) | 从左往右 |
= | 从右往左 |
运算符优先级为表达式中求值的顺序提供了重要依据
当运算符共享一个运算对象时,优先级决定了求职顺序