- ! 反操作符
- - 减
- + 加
- & 取地址操作符
- ~
- --
- ++
- *
- 布尔类型(表示真假类型)
一、操作符用法
-
反操作符(!)
#include <stdio.h>
int main()
{
while (!0)
{
printf("哈哈\n");
}
return 0;
}
这是个死循环,会一直打印“哈哈”,因为!0表示真,0表示假
-
减(-)
-
加(+)
-
取地址操作符(&)
#include <stdio.h>
int main()
{
int a = 10;
int* p = &a;
*p = 20;
//会改变a的结果,为20
return 0;
}
取地址操作符会取出对象存在内存中的地址
-
sizeof(计算操作数类型的长度)
int main()
{
int a = 0;
int sz1 = sizeof(a);
int sz2 = sizeof(int);
printf("%d %d", sz1, sz2);
return 0;
}
输出的结果是一样的,因为a的类型是int
-
~(对一个数的补码二进制所有位取反)
补码解释前面文章
https://blog.csdn.net/Xiaodao12345djs/article/details/142370936?spm=1001.2014.3001.5501
-
减减(--)
1、前置--
注意:先使用再--
int main()
{
int a = 10;
//前置--会先--,再使用,也就是a先--变为9后再给c赋值为9
int c = --a;
printf("%d %d\n", c, a);
return 0;
}
c = 9; a = 9;
2、后置--
注意:先--再使用
#include <stdio.h>
int main()
{
int a = 10;
//后置--会先使用,再--,也就是c=10后a再-1变为9
int c = a--;
printf("%d %d\n", c, a);
return 0;
}
c = 10; a = 9;
-
加加(++)
1、前置++
先++再使用
2、后置++
先使用再++
间接访问(解引用操作符)(*)
int main()
{
int a = 10;
printf("%d\n", a);
int* sp = &a;
*sp = 20;
printf("%d\n", a);
return 0;
}
打印的结果为10 20
sp为指针,指向a在内存中的地址,*sp相当于a,可以通过改变*sp的值来改变a的值
布尔类型
表示真假类型(C99引入)头文件为 #include <stdbool.h>
- _Bool flag=true; (真)
- _Bool flag=false; (假)