> 文章列表 > C语言从入门到精通学习第5天(基本的运算符表达式及运算的优先级)

C语言从入门到精通学习第5天(基本的运算符表达式及运算的优先级)

C语言从入门到精通学习第5天(基本的运算符表达式及运算的优先级)

基本的运算符&表达式及运算的优先级

  • 运算符和表达式的概念
    • 算术运算符
    • 赋值运算符
    • 关系运算符
    • 逻辑运算符
    • 逗号运算符
  • 运算符的优先级

运算符和表达式的概念

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号,有下列几种运算符:

  • 算术运算符:用于处理四则运算
  • 赋值运算符:用于将表达式的值赋值分变量
  • 关系运算符:用于表达式的比较,并返回一个真值或假值
  • 逻辑运算符:用于根据表达式的值返回真值或假值
  • 位运算符:用于处理数据的位运算
  • 逗号运算符:把多个表达式用逗号联接起来(或者说,把这些表达式用逗号分开),构成一个更大的表达式
  • 条件运算符:第一个表达式作真/假检测,然后根据结果返回两个表达式当中的一个
  • sizeof运算符:用于求字节数长度
  • 指针运算符(&,*):&取地址运算符,* 间接运算符
  • 点运算符(.):点运算符.的左边操作数是一个结果为结构体的表达式
  • 箭头(->)运算符:箭头运算符->的左边操作数是一个指向结构体的指针
  • []下标运算符:通过下标访问数组中的元素

表达式就是通过运算符将运算对象(操作数)连接起来的式子,就叫表达式,例如:a+b、x = b+2、x++

运算符也叫操作符,根据运算符操作的运算对象的个数可以将运算符分为以下几种:

  • 单目运算符:只需要一个操作数
  • 双目运算符:需要两个操作数
  • 三目运算符:需要三个操作数

算术运算符

运算符 术语 结合性 示例 结果
+ 从左至右 10+ 5 15
- 从左至右 10- 5 5
* 从左至右 10 * 5 50
/ 从左至右 10 / 5 2
% 取模(取余) 从左至右 10 % 3 1
++a 前自增 右结合 a=2; b=++a;
a++ 后自增 左结合 a=2; b=a++;
--a 前自减 右结合 a=2; b=--a;
a-- 后自减 左结合 a=2; b=a--;

提示: %取模运算符的两个操作数只能为整数,前自增/前自减都是先计算后引用,后自增/后自减先引用后计算。

赋值运算符

运算符 术语 示例 结果
= 赋值 a=2;b=3; a=2;b=3;
+= 加等于 a=0; a+=2; a=2;
-= 减等于 a=5; a-=3; a=2;
*= 乘等于 a=2; a*=2; a=4;
/= 除等于 a=4; a/=2; a=2;
%= 模等于 a=3; a%2; a=1;

提示:

  • ‘=’不是相等的意思,而是赋值。
  • 赋值表达式语句的目的是把值存储到内存上,用于存储值得数据存储区域统称为对象。
  • 左值指用于标识一个特定的数据对象的名字或表达式,称为变量。它具有两个特点:1)可修改性。2)是数据对象的标识符,应具有标识符的特性。3)左值不能为常量。
  • 右值指的是能赋给可修改得左值的量。

关系运算符

关系运算符用于比较两个数值中间的关系,所以也称为比较运算符。

运算符 术语 示例 结果
== 相等于 4 == 3 0
!= 不等于 4 != 3 1
< 小于 4 < 3 0
> 大于 4 > 3 1
<= 小于等于 4 <= 3 0
>= 大于等于 4 >= 1 1

提示: 0表示假,1表示真。注意赋值运算符‘=’和关系运算符“==”的区别,条件判断式中用“==”。

逻辑运算符

运算符 术语 示例 结果
! !a 如果a为假,则!a为真;如果a为真,则!a为假。
&& a && b 如果a和b都为真,则结果为真,否则为假。
|| a || b 如果a和b有一个为真,则结果为真,二者都为假时,结果为假。

计算机通过两个逻辑来表示两个数值之间的关系:

  • 逻辑真(关系成立):非0
  • 逻辑假(关系不成立):0

在调试程序时,C语言为了形象地表达某两个值之间的关系,就用计算机中最简单的两个值0和1来描述,如果你在调试程序时输出结果为0,则表示你所判断的关系是不成立的,反之则表示成立!

注意: 1 是“真”,但是“真”不是1

逗号运算符

逗号运算符将两个表达式连接起来

表达式1, 表达式2

逗号运算符的结合性是“从左至右”:先计算表达式1,后计算表达式2

6)条件运算符
条件运算符是通过?和冒号:连接的表达式

表达式1 ?表达式2 : 表达式3

表示如果表达式1的结果为真,则整个表达式的结果为表达式2的结果,否则为表达3的结果。例如:2>3?True:False

运算符的优先级

! > 算术运算符 > 关系运算符 > && > || > 条件运算符 > 赋值运算符 > 逗号运算符