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

 更新时间:2021年06月20日 14:55:13   作者:我会一直在um  
指令系统的每一条指令都有一个操作符,它表示该指令应进行什么样性质的操作,不同的指令用操作符这个字段的不同编码来表示,每个编码代表一种指令,这篇文章主要给大家介绍了关于C语言中操作符的相关资料,需要的朋友可以参考下

算术操作符

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

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

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

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

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

移位操作符

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

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

        

右移操作符 移位规则:    

首先右移运算分两种:        

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

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

    

  

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

例如:  

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。

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

 

练习一下:

#include <stdio.h>
int main(){
 int num1 = 1;
 int num2 = 2;
 num1 & num2;
 num1 | num2;
 num1 ^ num2;
 return 0; 
}

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

#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语言中的等于是"=="。

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

 单目操作符

!           逻辑反操作  

 

-        负值

+          正值  

 

&          取地址

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

 

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

 

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

 

--          前置、后置--

++         前置、后置++  

//++和--运算符
//前置++和--
 //前置++和--:
 #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的结果转换为整型。 
 

 

  关系操作符

>

>=

<

<=

!=       用于测试“不相等”

==      用于测试“相等”

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

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

逻辑操作符

&&     逻辑与                     ||      逻辑或

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

#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语言操作符介绍内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • VS2022中使用Copilot的图文教程

    VS2022中使用Copilot的图文教程

    大家都知道Copilot可以自动帮助写代码,那么这个工具是如果使用的呢?很多朋友不是很清楚,今天小编给大家分享一篇教程关于VS2022中使用Copilot的图文教程,感兴趣的朋友一起看看吧
    2022-04-04
  • 深入理解C语言 static、extern与指针函数

    深入理解C语言 static、extern与指针函数

    这篇文章主要介绍了C语言 static、extern与指针函数,有需要的朋友可以参考一下
    2013-12-12
  • iOS锁屏音频播放控制及音频信息设置

    iOS锁屏音频播放控制及音频信息设置

    这篇文章主要为大家详细介绍了iOS锁屏音频播放控制及音频信息设置,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • C++缺省参数的理解

    C++缺省参数的理解

    这篇文章主要为大家介绍了C++缺省参数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • C++九种排序具体实现代码

    C++九种排序具体实现代码

    这篇文章主要介绍了C++九种排序具体实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 基于Qt实现简单的计算器

    基于Qt实现简单的计算器

    这篇文章主要介绍了如何使用Qt框架实现一个简单的计算器应用,我们将使用C++编程语言和Qt的图形用户界面库来开发这个应用,并展示如何实现基本的算术操作,希望对大家有所帮助
    2023-11-11
  • 用C语言实现扫雷小程序

    用C语言实现扫雷小程序

    这篇文章主要为大家详细介绍了用C语言实现扫雷小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • VScode搭建OpenCV环境的详细步骤

    VScode搭建OpenCV环境的详细步骤

    用vscode来写opencv代码需要自己编译OpenCV,主要用到MinGW-w64和CMake工具。接下来通过本文给大家介绍VScode搭建OpenCV环境的相关知识,需要的朋友可以参考下
    2021-11-11
  • C语言深入探究程序的编译之预处理

    C语言深入探究程序的编译之预处理

    在C语言的程序中包括各种以符号#开头的编译指令,这些指令称为预处理命令。预处理命令属于C语言编译器,而不是C语言的组成部分,通过预处理命令可扩展C语言程序设计的环境
    2022-05-05
  • Matlab实现绘制高阶版本韦恩图(upset图)

    Matlab实现绘制高阶版本韦恩图(upset图)

    韦恩图随着阶数升高会越来越复杂,当阶数达到7或者以上时几乎没办法绘制,但是使用upset图却可以比较轻易的绘制。本文就来用Matlab实现绘制upset图,需要的可以参考一下
    2023-01-01

最新评论