目录
Ⅴ、单目操作符(! - + & sizeof ~ -- ++ * )
一、操作符
Ⅰ、算数操作符(+ - * / %)
操作符 | 含义 |
---|---|
+ | 加:可用于任何基本类型的相加 |
- | 减:可用于任何基本类型的相减 |
* | 乘:可以用于任何基本类型的相乘 |
/ | 除:可以用于任何基本类型的相除 (相除中如果操作数有一个或两个小数则得出浮点型(double) 如果两个都为整数,则得出整型(int)) |
% | 余:用于整数的互余 (两个操作数必须为整数,返回的是整除之后的余数) |
Ⅱ、位移操作符(<< >>)
操作符 | 含义 |
---|---|
<< | 左移操作符:左操作数的二进制形式向左移动 |
>> | 右移操作符:左操作数的二进制形式向右移动 |
①左移操作符原则:左边抛弃,右边补0
#include <stdio.h>
int main()
{
int a = 128;
a = a << 1;
printf("%d ", a);
return 0;
}
结果如下
②右移动操作符原则(两种):
1. 逻辑右移:左边用0填充,右边丢弃。(与左移原理相同)
2. 算数右移:左边用该值的原符号位填充,右边丢弃。
判断究竟是使用逻辑右移还是算数右移:取决于编译器,当前Visual Studio 2022,使用的是算数右移。
注:对于a << -1这种操作是未定义的操作。
Ⅲ、位操作符(& | ^)
操作符 | 含义 |
---|---|
& | 按位与:两边数据的补码对应都为1时才为1,否则为0 |
| | 按位或:两边数据的补码对应都为0时才为0,否则为1 |
^ | 按位异或:两边数据的补码对应相同为0,相异为1 |
举个例子:
#include <stdio.h>
int main()
{
int a = 334;
int b = 234;
//a 的数据域 00000000 00000000 00000001 01001110
//b 的数据域 00000000 00000000 00000000 11101010
//a&b的结果 00000000 00000000 00000000 01001010 结果为74
printf("%d", a & b);
return 0;
}
结果如下
数据存储方式详解——> <创作中>
Ⅳ、赋值操作符(= 复合操作符+= 、 -=等等)
操作符 | 含义 |
---|---|
= | 给某个变量赋值 |
+= | 加等:左边的值加上右边的值最后赋值给左值 |
-= | 减等:左边的值减去右边的值最后赋值给左值 |
*= | 乘等 |
/= | 除等 |
%= | 余等 |
>>= | 右移等 |
<<= | 左移等 |
&= | 按位与等 |
|= | 按位或等 |
^= | 按位异或等 |
Ⅴ、单目操作符(! - + & sizeof ~ -- ++ * )
操作符 | 含义 |
---|---|
! | 逻辑反操作 |
- | 负值 |
+ | 正值 |
& | 取地址操作符 |
sizeof | 操作数的类型长度(以字节为单位) |
~ | 对一个数的二进制按位取反 |
-- | 前置、后置-- |
++ | 前置、后置++ |
* | 间接访问操作符(解引用操作符) |
(类型) | 强制类型转换 |
Ⅵ、关系操作符(判断操作符 > < 等)
操作符 | 含义 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
!= | 不等于(用于测试”不相等“) |
== | 等于(用于测试”相等“) |
Ⅶ、逻辑操作符(&& || )
操作符 | 含义 |
---|---|
&& | 逻辑与(两边都为真才为真) |
|| | 逻辑或(只要有一边为真就为真) |
Ⅷ、条件操作符( 表达式1 ? 表达式2 : 表达式3)
操作符 | 含义 |
---|---|
exp1 ? exp 2 : exp3 | 判断exp1是否为真,如果为真返回exp2 如果为假返回exp3。 |
Ⅸ、逗号表达式(,)
exp1 , exp2 , exp3 , exp4 ~~~ expn |
逗号表达式的返回值为最后一个表达式的值expn
Ⅹ、下标引用、函数调用和结构成员
操作符 | 含义 |
---|---|
[] | 下表引用操作符 |
() | 函数调用操作符 |
. | 结构体成员访问:结构体.成员名 |
-> | 结构体成员访问:结构体指针->成员名 |
二、ASCII码表
符号 ASCII码 NUT 0 SOH 1 STX 2 ETX 3 EOT 4 ENQ 5 ACK 6 BEL 7 BS 8 HT 9 LF 10 VT 11 FF 12 CR 13 SO 14 SI 15 DLE 16 DCI 17 DC2 18 DC3 19 DC4 20 NAK 21 SYN 22 TB 23 CAN 24 EM 25 SUB 26 ESC 27 FS 28 GS 29 RS 30 US 31 (space)(空格) 32 ! 33 " 34 # 35 $ 36 % 37 & 38 '(单引号) 39 ( 40 ) 41 * 42 + 43 ,(英文逗号) 44 - 45 .(英文句号) 46 / 47 0 48 1 49 2 50 3 51 4 52 5 53 6 54 7 55 8 56 9 57 : 58 ; 59 < 60 = 61 > 62 ? 63 @ 64 A 65 B 66 C 67 D 68 E 69 F 70 G 71 H 72 I 73 J 74 K 75 L 76 M 77 N 78 O 79 P 80 Q 81 R 82 S 83 T 84 U 85 V 86 W 87 X 88 Y 89 Z 90 [ 91 \ 92 ] 93 ^ 94 _(下划线) 95 · 96 a 97 b 98 c 99 d 100 e 101 f 102 g 103 h 104 i 105 j 106 k 107 l 108 m 109 n 110 o 111 p 112 q 113 r 114 s 115 t 116 u 117 v 118 w 119 x 120 y 121 z 122 { 123 | 124 } 125 ~ 126 DEL 127