操作符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作符相关的知识,希望对你有一定的参考价值。
1.操作符分类
- 算术操作符
- 移位操作符
- 位操作符
- 赋值操作符
- 单目操作符
- 关系操作符
- 逻辑操作符
- 条件操作符
- 逗号表达式
- 下标引用、函数调用和结构成员
2.算术操作符
+ — * /
- 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
- 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
- % 操作符的两个操作数必须为整数。返回的是整除之后的余数。
3.移位操作符
- <<左移位
- >>右移位
- 注:移位操作符的操作数只能是整数
3.1左移位操作符
- 左边抛弃,右边补0
3.2右移位操作符
- 逻辑移位:左边用0填充,右边丢弃
- 算术移位:左边用原该值的符号位填充,右边丢弃
4.位操作符
& //按位与
| //按位或
^ //按位异或
- 注:他们的操作数必须是整数
不能创建临时变量,实现两个数的交换
int main()
int a = 10;
int b = 20;
a = a^b;
b = a^b;
a = a^b;
printf("a = %d b = %d\\n", a, b);
return 0;
5.单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
6.关系操作符
>
>=
<
<=
!= 不相等
== 相等
7.逻辑操作符
&& 逻辑与
|| 逻辑或
int main()
int i = 0,a=0,b=2,c =3,d=4;
i = a++ && ++b && d++;
//i = a++||++b||d++;
printf("a = %d\\n b = %d\\n c = %d\\nd = %d\\n", a, b, c, d);
return 0;
//程序输出的结果是什么?
8.条件操作符
exp1 ? exp2 : exp3
if (a > 5)
b = 3;
else
b = -3;
//转换成条件表达式
a>5?b=3:b=-3
9.访问一个结构的成员
struct Stu
char name[20];
int age;
char id[20];
;
int main()
//使用struct Stu这个类型创建了一个学生对象s1,并初始化
struct Stu s1 = "张三", 20, "20221226" ;
struct Stu*ps = &s1;
printf("%s\\n", ps->name);
printf("%d\\n", ps->age);
printf("%s\\n", ps->id);
//结构体指针->成员名
/*printf("%s\\n", (*ps).name);
printf("%d\\n", (*ps).age);*/
/*printf("%s\\n", s1.name);
printf("%d\\n", s1.age);
printf("%s\\n", s1.id);*/
//结构体变量.成员名
return 0;
以上是关于操作符的主要内容,如果未能解决你的问题,请参考以下文章