C语言操作符
来源:互联网 发布:批处理执行python 编辑:程序博客网 时间:2024/06/05 04:38
指令系统的每一条指令都有一个操作符,它表示该指令应进行什么性质的操作。
1. 算数操作符
+ 加法操作符
- 减法操作符
* 乘法操作符
/ 整除操作符 5/2=2
% 求余操作符 5%2=1
注:
i. 除求余操作符(%)外,其他的几个操作符都可以用于整数和浮点数。
ii. 对于整除操作符(/),若两个操作符都为整数,则执行整数除法;若其中有一个为浮点数,则执行浮点数除法。
iii. 求余操作符(%)的两个操作符必须为整数,返回的是整除之后的余数。
2. 移位操作符
<< 左移操作符
>> 右移操作符
移位规则:
(1)<< 左移操作符 左边舍弃、右边补0
int n = 10; //10的二进制为 00001010n << 1; //10左移一位后变为 0 00010100 (后面补0,前面舍去)
注:实际上n在未赋值的情况下,自身的值不变
(2) >> 右移操作符
1)逻辑移位
左边补0、右边舍弃
int n = -1; // -1的二进制为 11111111n >> 1; // 01111111 1 // (左边补0,右边舍去)
2)算数移位
左边补原数符号位、右边舍弃
int n = -1; // -1的二进制为 11111111n >> 1; // 11111111 1 // (左边补符号位,右边舍去)
3. 位操作符
& 按位与 同真为真 3^ 00000011
| 按位或 一真为真 5 00000101
^ 按位异或 相同为0,相异为1 = 00000110
注:按“位”中的位指二进制的位
4. 赋值操作符
+= -= *= /= %= a=a+1等价于a+=1
>>= <<= &= |= ^=
5. 单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
注:
i.
int a = 10;int c = 4;printf("%d\n", sizeof(a)); //其中a的括号可以省printf("%d\n", sizeof(int)); //其中int的括号不能省printf("%d\n", sizeof(a = c + 1)); //其中sizeof内部的表达式不参与运算 //其中后三句等价
ii. sizeof内部放数组名,则数组名表示整个数组,单位是字节
int arr[10];printf("%d\n", sizeof(arr));
iii. 除此之外都是表示数组首元素
~ 对一个数的二进制按位取反
printf("%d\n", ~0); //其中~0表示1
-- 前置、后置—
int a = 10;int x = --a; //前置—,先—后使用int y = a--; //后置--,先使用后--printf("%d\n", x, y); //输出x = 9,y = 10
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
6. 关系操作符
>、>=
<、<=
!= 用于测试“不相等”
== 用于测试“相等”
7. 逻辑操作符
&& 逻辑与
|| 逻辑或
注:
i. 逻辑与(&&)与按位与(&) 1&2=0
1&&2=1
逻辑或(||)与按位或(|) 1|2=3
1||2=1
ii. 逻辑与(&&)和逻辑或(||)都具有短路特性,即当前一个逻辑表达式可以决定整个表达式的计算结果时,后一个逻辑表达式根本就不会计算
8. 条件操作符
表达式1?表达式2:表达式3
注:
i. 若表达式1为真则执行表达式2
ii. 若表达式1为假则执行表达式3
9. 逗号表达式
表达式1,表达式2,表达式3,…,表达式n
注:
i. 逗号表达式,从左向右依次执行。
ii. 整个表达式的结果是最后一个表达式的结果。
10. 下标引用、函数调用和结构成员
[] 下标引用操作符
() 函数调用操作符
注:接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
访问一个结构的成员
. 结构体.成员名
-> 结构体指针->成员名
- c语言操作符
- C语言#,##操作符
- C语言操作符
- 【C语言】操作符
- 【C语言】操作符
- c语言操作符
- c语言操作符
- C语言操作符
- c语言操作符
- C语言操作符
- c语言操作符
- C语言操作符
- c语言操作符
- c语言操作符
- C语言操作符
- C语言操作符
- C语言操作符
- c语言操作符
- 基于handle_detector的机器人对目标定位
- java菱形图案
- vmware workstation14连网
- Java中static学习心得
- 第7章 虚拟机类加载机制7.1~7.3
- C语言操作符
- Linux搭建FFMPEG环境
- vim常用快捷键
- url地址中有特殊符号“引号”引发的错误
- TensorFlow在MNIST中的应用-训练过程的可视化
- mysql 利用外键级联删除、更新
- mysql 常用命令
- 圆桌骑士,蓝书P316LA3523(tarjan求双连通分量算法,二分图判断,奇圈)
- Js与Java的基本数据类型