C语言的运算符你了解吗

 更新时间:2021年08月26日 16:22:39   作者:宝全哥哥  
这篇文章主要介绍了C语言中的运算符,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下,希望能给你带来帮助

前言

自学笔记,没有历史知识铺垫(省略百度部分)C语言运算符的使用

一、算数运算符(数学运算) 

+ -

左右数据同一数据类型

* / %

注意

乘/除法在很多CPU中无法实现,或者需要多个CPU周期去实现嵌入式开发中,乘/除法可能需要第三方乘法库才能实现乘/除法可能导致程序的移植性变差

%取模 场景:

获取范围数值时,如:int result=(x%100)+1; 则result值的范围为[1.100]得到m进制的个位数,如8进制个位数: int a=x%8;介于取模的特性,可以用在循环数组结构中获取下标,0,1,2,3,0,1,2,3,0,1,2…

二、逻辑运算符(判断真假)

|| &&

逻辑或 逻辑与

> >= < <=

大于 大于等于 小于 小于等于

!

? : 三元运算符

三元运算符

三、位运算符(重点) 

<< 左移

运算场景:
左移1位,数据=数据2
m左移n位,m=m2ⁿ

>> 右移

运算场景:
右移1位,数据=数据/2
m右移n位,m=m/2ⁿ

注意:
signed和unsigned的右移动是不同的
signed修饰的变量的右移做while条件且变量为负数时,while会进入死循环(因为最高位=1,是符号位,永远无法右移为0)

& | ^ ~ 与 或 异或 取反

& 与
bit中任意一位与0相&,该位都为0
场景:

屏蔽清零器 a=a | (~(0x1<<n))
int a=0x1234;
//屏蔽低8位
a=a& 0xff00;
int a=0x1234;
//清零器,清除bit第五位的高电平,转为低电平,其他位不变
a=a & (~(0x1<<5));

| 或
bit中任意一位与1相|,该位都为1
场景:

保留/设置:设置高电平的方法,如设置指定位为高电平,其他位不变 a=a | (0x1<<n)
int a=3;
//使用左移可以更方便快速的让第五位bit处于高电平,而且不影响其他位(嵌入式中bit最右边通常读作第0位)
a= a| (0x1<<5)

^ 异或
相同为0,不同为1
1.通常用于数据加密算法,AES SHA1等
2.数据交换(排序中的一种方法)

a=a^b;

b=a^b;
a=a^b;

~ 取反
按位取反

四、赋值运算符

= += -= &= ...
赋值运算实际上是组合运算的缩写,非原子性操作,volatile内存可见特性会失效(实际上执行了两步,只靠volatile无法解决)

五、内存访问符号

 () 限制符/函数访问符

1.限制符

(a+b)*c

1.函数访问符

void fun();

[] 内存访问ID符

内存访问ID符(C语言中并不局限于数组的访问,通过指针可以访问整个内存空间)

a[0]
a[1]

{} 函数体限制符

函数体限制符

-> 地址访问符 

.变量访问符 

&取址符

&a;

*取值符

*a;

总结

本章主要为C语言运算符的使用

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • C++对象的动态建立与释放详解

    C++对象的动态建立与释放详解

    我们知道可以用new运算符可以动态的分配内存,用delete运算符可以释放这些内存。当我们使用new运算符动态的分配一个内存之后,会自动返回一个该内存段的起始地址,也就是指针。
    2013-10-10
  • QT编写简单登录界面的实现示例

    QT编写简单登录界面的实现示例

    登陆界面是网页中常见的界面,本文主要介绍了QT编写简单登录界面的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • C++中可以接受任意多个参数的函数定义方法(详解)

    C++中可以接受任意多个参数的函数定义方法(详解)

    下面小编就为大家带来一篇C++中可以接受任意多个参数的函数定义方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • C语言位运算符的具体使用

    C语言位运算符的具体使用

    位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。本文就详细的介绍一下,感兴趣的可以了解一下
    2021-09-09
  • 怎么实现类的成员函数作为回调函数

    怎么实现类的成员函数作为回调函数

    不使用成员函数,为了访问类的成员变量,可以使用友元操作符(friend),在C++中将该函数说明为类的友元即可
    2013-10-10
  • C++ 左值引用与一级指针示例详解

    C++ 左值引用与一级指针示例详解

    这篇文章主要介绍了C++ 左值引用与一级指针,本文给大家介绍了C++ (左值)引用和指针简介,结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • C语言实现职工管理系统

    C语言实现职工管理系统

    这篇文章主要为大家详细介绍了C语言实现职工管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • 详解QListWidget如何实现自定义Item效果

    详解QListWidget如何实现自定义Item效果

    这篇文章主要为大家介绍了如何通过QListWidget实现自定义Item效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-04-04
  • vs2020打包生成exe的实现方法

    vs2020打包生成exe的实现方法

    本文主要介绍了Visual Studio Installer Projects插件和第三方软件SetupFactory创建可安装的Windows应用程序包,并最终将其转换为可执行文件的方法,感兴趣的可以了解一下
    2024-12-12
  • C语言深入探究函数的溯源

    C语言深入探究函数的溯源

    函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数
    2022-04-04

最新评论