服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C语言中各种操作符的详细介绍(纯干货!)

C语言中各种操作符的详细介绍(纯干货!)

2021-11-16 15:35我会一直在um C/C++

指令系统的每一条指令都有一个操作符,它表示该指令应进行什么样性质的操作,不同的指令用操作符这个字段的不同编码来表示,每个编码代表一种指令,这篇文章主要给大家介绍了关于C语言中操作符的相关资料,需要的朋友可以参考

算术操作符

主要是 ( +   -   *   /    %) 五种算数操作符。

1、除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。

2、 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除
法。

3.、% 操作符的两个操作数必须为整数。返回的是整除之后的余数。

C语言中各种操作符的详细介绍(纯干货!)

当除数为小数时,int类型只会截取整数部分。

C语言中各种操作符的详细介绍(纯干货!)

移位操作符

  • << 左移操作符
  • >> 右移操作符  

左移操作符   移位规则: 左边抛弃、右边补0  

C语言中各种操作符的详细介绍(纯干货!)

  C语言中各种操作符的详细介绍(纯干货!)      

右移操作符 移位规则:    

首先右移运算分两种:        

1. 逻辑移位 左边用0填充,右边丢弃        

2. 算术移位 左边用原该值的符号位填充,右边丢弃  

C语言中各种操作符的详细介绍(纯干货!)    

C语言中各种操作符的详细介绍(纯干货!)  

警告⚠ :对于移位运算符,不要移动负数位,这个是标准未定义的。

例如:  

int num = 10;  

num>>-1;//error

位操作符

& 按位与 :1 1为1;1 0为0;0 0为0。

| 按位或 :1 1为1;1 0为1;0 0为0。

^ 按位异或 : 1 1为0;1 0为1;0 0为0。

注:他们的操作数必须是整数。  

C语言中各种操作符的详细介绍(纯干货!)

练习一下:

?
1
2
3
4
5
6
7
8
9
#include <stdio.h>
int main(){
 int num1 = 1;
 int num2 = 2;
 num1 & num2;
 num1 | num2;
 num1 ^ num2;
 return 0;
}

不能创建临时变量(第三个变量),实现两个数的交换。

?
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
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;
}

赋值操作符

 "="

注意:这是赋值操作符,并不是等于。c语言中的等于是"=="。

C语言中各种操作符的详细介绍(纯干货!)

复合赋值符 +=    -=   *=   /=   %=   >>=   <<=   &=   |=   ^=   符合赋值操作符与其他运算符一样的道理。这样写更加简洁  

C语言中各种操作符的详细介绍(纯干货!)

 单目操作符

!           逻辑反操作 

C语言中各种操作符的详细介绍(纯干货!)

-        负值

+          正值 

C语言中各种操作符的详细介绍(纯干货!)

&          取地址

*           间接访问操作符(解引用操作符)  

C语言中各种操作符的详细介绍(纯干货!)

sizeof   操作数的类型长度(以字节为单位) 

C语言中各种操作符的详细介绍(纯干货!)

~           对一个数的二进制按位取反 

C语言中各种操作符的详细介绍(纯干货!)

--          前置、后置--

++         前置、后置++ 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//++和--运算符
//前置++和--
 //前置++和--:
 #include <stdio.h>
 int main()
 {
 int a = 10;
 int x = ++a;
 //先对a进行自增,然后对使用a,也就是表达式的值是a自增之后的值。x为11。
 int y = --a;
 //先对a进行自减,然后对使用a,也就是表达式的值是a自减之后的值。y为10;
 return 0;
 }
 
 
 
 
 //后置++和--
 #include <stdio.h>
 int main()
 {
 int a = 10;
 int x = a++;
 //先对a先使用,再增加,这样x的值是10;之后a变成11;
 int y = a--;
 //先对a先使用,再自减,这样y的值是11;之后a变成10;
 return 0;
 }

(类型)   强制类型转换         

强制类型转换是通过类型转换运算来实现的。其一般形式为:(类型说明符)(表达式)其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。自动转换是在源类型和目标类型兼容以及目标类型广于源类型时发生一个类型到另一类的转换。例如: (float) a 把a转换为浮点型,(int)(x+y) 把x+y的结果转换为整型。 
 

C语言中各种操作符的详细介绍(纯干货!)

  关系操作符

>

>=

<

<=

!=       用于测试“不相等”

==      用于测试“相等”

这些关系运算符比较简单,但是我们要注意一些运算符使用时候的陷阱

警告: 在编程的过程中 == 和 = 不小心写错,导致的错误。

逻辑操作符

&&     逻辑与                     ||      逻辑或

区分 逻辑与 和 按位与 区分 逻辑或 和 按位或

C语言中各种操作符的详细介绍(纯干货!) C语言中各种操作符的详细介绍(纯干货!)

?
1
2
3
4
5
6
7
8
#include <stdio.h>
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;
}

  条件操作符

exp1 ? exp2 : exp3

C语言中各种操作符的详细介绍(纯干货!)

总结

到此这篇关于c语言中各种操作符的文章就介绍到这了,更多相关c语言操作符介绍内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_56627079/article/details/117955955

延伸 · 阅读

精彩推荐