本文主要是介绍从零开始学C语言系列之第四章《运算符第四节》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
往期回顾
1.【第一章】《认识C语言》
2.【第二章】C语言概述及基本知识1
3.【第二章】C语言概述及基本知识2
4.【第三章】字符串和格式化输入/ 输出
5.【第三章】 printf
6.【第三章】 scanf
7.【第三章】 putchar
8.【第三章】 getchar
9.【第三章】 sizeof
10.【第三章】 strlen
11.【第三章】 define
12.【第四章】运算符第一节
13.【第四章】运算符第二节
14.【第四章】运算符第三节
文章目录
- 往期回顾
- 优先级
- 逻辑运算符
- 与或非介绍
- & 和 &&
- | 和 ||
- !
- 三目运算符
优先级
优先级 | 运算符 | 名称或含义 | 使用形式 | 结合方向 | 说明 |
---|---|---|---|---|---|
1 | [] | 数组下标 | 数组名[常量表达式] | 左到右 | – |
() | 圆括号 | (表达式)/函数名(形参表) | – | ||
. | 成员选择(对象) | 对象.成员名 | – | ||
-> | 成员选择(指针) | 对象指针->成员名 | – | ||
2 | - | 负号运算符 | -表达式 | 右到左 | 单目运算符 |
~ | 按位取反运算符 | ~表达式 | |||
++ | 自增运算符 | ++变量名/变量名++ | |||
– | 自减运算符 | –变量名/变量名– | |||
* | 取值运算符 | *指针变量 | |||
& | 取地址运算符 | &变量名 | |||
! | 逻辑非运算符 | !表达式 | |||
(类型) | 强制类型转换 | (数据类型)表达式 | – | ||
sizeof | 长度运算符 | sizeof(表达式) | – | ||
3 | / | 除 | 表达式/表达式 | 左到右 | 双目运算符 |
* | 乘 | 表达式*表达式 | |||
% | 余数(取模) | 整型表达式%整型表达式 | |||
4 | + | 加 | 表达式+表达式 | 左到右 | 双目运算符 |
- | 减 | 表达式-表达式 | |||
5 | << | 左移 | 变量<<表达式 | 左到右 | 双目运算符 |
>> | 右移 | 变量>>表达式 | |||
6 | > | 大于 | 表达式>表达式 | 左到右 | 双目运算符 |
>= | 大于等于 | 表达式>=表达式 | |||
< | 小于 | 表达式<表达式 | |||
<= | 小于等于 | 表达式<=表达式 | |||
7 | == | 等于 | 表达式==表达式 | 左到右 | 双目运算符 |
!= | 不等于 | 表达式!= 表达式 | |||
8 | & | 按位与 | 表达式&表达式 | 左到右 | 双目运算符 |
9 | ^ | 按位异或 | 表达式^表达式 | 左到右 | 双目运算符 |
10 | | | 按位或 | 表达式|表达式 | 左到右 | 双目运算符 |
11 | && | 逻辑与 | 表达式&&表达式 | 左到右 | 双目运算符 |
12 | || | 逻辑或 | 表达式||表达式 | 左到右 | 双目运算符 |
13 | ?: | 条件运算符 | 表达式1?表达式2: 表达式3 | 右到左 | 三目运算符 |
14 | = | 赋值运算符 | 变量=表达式 | 右到左 | – |
/= | 除后赋值 | 变量/=表达式 | – | ||
*= | 乘后赋值 | 变量*=表达式 | – | ||
%= | 取模后赋值 | 变量%=表达式 | – | ||
+= | 加后赋值 | 变量+=表达式 | – | ||
-= | 减后赋值 | 变量-=表达式 | – | ||
<<= | 左移后赋值 | 变量<<=表达式 | – | ||
>>= | 右移后赋值 | 变量>>=表达式 | – | ||
&= | 按位与后赋值 | 变量&=表达式 | – | ||
^= | 按位异或后赋值 | 变量^=表达式 | – | ||
|= | 按位或后赋值 | 变量|=表达式 | – | ||
15 | , | 逗号运算符 | 表达式,表达式,… | 左到右 | – |
逻辑运算符
与或非介绍
& 和 &&
相同点:
这两个逻辑运算符都表示:“与”,一个为False,全为False。
区别:
&:表达式a & 表达式b 在运算时,表达式a和b都会被执行,进行True和False的判断。
&&:表达式a && 表达式b 在运算时,如果表达式a为False,则表达式b不进行运算,直接返回结果,计算效率高。
| 和 ||
相同点:
这两个逻辑运算符都表示:“或”,一个为True,全为True。
区别:
|:表达式a | 表达式b 在运算时,表达式a和b都会被执行,进行True和False的判断。
||:表达式a || 表达式b 在运算时,如果表达式a为True,则表达式b不进行运算,直接返回结果,计算效率高。
!
逻辑非:取相反结果
三目运算符
三目运算符,又称条件运算符,是计算机语言(C,C++,Java等)的重要组成部分。它是唯一有 3 个操作数的运算符,所以有时又称为三元运算符,其实三目运算符和 if / else 条件判断类似。
三目运算符的书写:
<表达式1> ? <表达式2> : <表达式3>;
返回值:先求表达式 1 的值,如果为真,则执行表达式 2,并返回表达式 2 的结果;如果表达式 1 的值为假,则执行表达式 3,并返回表达式 3 的结果。
举个例子:
// 对于条件表达式
b ? x : y
q先判断条件 b 真假,如果 b 的值为 true ,那么返回表达式 x 的计算结果;否则,计算 y 的值,返回表达式 y 的计算结果。
一个条件表达式绝不会既计算 x,又计算 y(就好比在 if / else 条件判断中,不可能既执行 if 后的代码又执行 else 之后的代码)。
例子:
#include "stdafx.h"
#include <stdio.h>int main()
{int a = 1;int b = 2;int c = 0;//三目运算符返回整数c = a ? (a + b) : (a - b);//因为表达式1(a=1),条件为真,所以执行表达式2,返回a+b的结果printf("整数c = %d\n",c);//三目运算符返回字符串char *s = 0 ? "条件成立" : "条件不成立";//因为表达式1(0),条件为假,所以执行表达式3,返回字符串"c条件不成立"printf("字符串s = %s\n", s);printf("main函数结束!\n");return 0;
}
/*
输出结果:整数c = 3
字符串s = 条件不成立
main函数结束!
请按任意键继续. . .*/
这篇关于从零开始学C语言系列之第四章《运算符第四节》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!