首页 > 其他分享 >C语言中操作符详解(二)

C语言中操作符详解(二)

时间:2024-06-23 18:57:13浏览次数:22  
标签:操作数 优先 C语言 运算符 详解 操作符 单目 表达式

OK,今天继续为诸君带来有关C语言中操作符的讲解

一 . 位操作符 

C语言中的位操作符我相信大家并不陌生,我们在之前就已经接触过了一些

位操作符(位操作符的操作数只能是整数):

(1)& :按位与(同为 1 才为 1 ,否则为 0 )

(2) | :按位或(有 1 就为 1 )

(3) ^ :按位异或(不同为 1 ,否则为 0 )

(4) ~ :按位取反( 0 变 1 ,1 变 0 )

(5) << :按位左移

(6) >> :按位右移

注意!!!:整形表达式的计算使用在内存中都是补码,我们打印和看到的也都是补码,所有的位运算都一样!!!

这里通过一道例题来帮助大家理解位操作符:

二 . 单目操作符

之前提到过,单目操作符就是只针对一个操作数而言的操作符。我们常见的单目操作符有:

!、+ 、- 、++ 、-- 、* 、& 、~ 、sizeof 、(类型)

有关单目操作符除了 & 和 * ,其他的单目操作符我们在前面都讲过,这两个呢会计划在指针部分为大家讲解,其他的操作符就请诸君移步:

C语言中的操作符-CSDN博客

关系操作符,条件操作符与逻辑操作符_关系模式操作符-CSDN博客

四 . 逗号表达式

逗号表达式,顾名思义,就是用逗号隔开的多个表达式:
exp1,exp2,exp3,......,expN

逗号表达式遵循从左向右依次执行的原则(整个表达式的结果是最后一个表达式的结果

这里直接给大家上图理解:

五 . 下标引用操作符

下标引用操作符:[ ] 

操作数:一个数组名 + 一个索引值(下标)

实际上在我们学习数组的时候就已经不知不觉地在运用下标引用操作符了

六 . 函数调用操作符

函数调用操作符:(),可以接收一个或者多个操作数,第一个操作数就是()前面的函数名,剩余的操作数就是()内的传递给函数的参数

七 . 操作符的属性

操作符有两个属性:优先性、结合性

这两个属性决定了表达式求值的计算顺序

(1)优先性

优先性指的是,如果一个表达式包含多个运算符,我们就应该依照操作符的优先性来判断哪一个运算符优先执行,()的优先级最高,所以()可以改变其它运算符的优先级

(2)结合性

如果两个运算符的优先性相同,这个时候我们就得看它俩之间的结合性了,根据运算符是左结合还是右结合来决定运算顺序

(大部分运算符都是左结合(从左到右),少数是右结合(从右到左)例如赋值运算符:= )

例如:5 * 6  / 2

* 和 / 优先级相同,且它们都是左结合运算符,所以从左到右依次执行

有关优先性结合性,大家可以参考此图:

想要了解更加详细的运算符的优先性和结合性的,可以移步到官网查看:

https://zh.cppreference.com/w/c/language/operator_precedence

OKK,今天就说这么多啦,操作符虽然繁多,但是细分下来知识点都很简单,诸君都是聪明人,相信这部分大家不难理解昂。咱们下期再见,与诸君共勉!!!

标签:操作数,优先,C语言,运算符,详解,操作符,单目,表达式
From: https://blog.csdn.net/Dove_Xxx/article/details/139899305

相关文章

  • 深度解析RocketMq源码-高可用存储组件(一) raft协议详解
    1.绪论前面的文章已经分析过,以前rocketmq通过主从复制的思想实现系统的高可用,即在搭建集群的时候会手动的设置一个主节点和从节点,在写入数据的时候,会先写入到主broker,然后再同步到从节点中。但是这样会有一个问题,就是主节点宕机过后,需要手动的修改从节点成为新的主节点。在roc......
  • win32API(CONSOLE 相关接口详解)
    前言:        Windows这个多作业系统除了协调应⽤程序的执⾏、分配内存、管理资源之外,它同时也是⼀个很⼤的服务中⼼,调⽤这个服务中⼼的各种服务(每⼀种服务就是⼀个函数),可以帮应⽤程式达到开启视窗、描绘图形、使⽤周边设备等⽬的,由于这些函数服务的对象是应⽤程序(App......
  • 文件操作(1)(C语言版)
    前言:            为什么要学习文件操作:    1、如果大家写过一些代码,当运行结束的时候,这些运行结果将不复存在,除非,再次运行时这些结果才能展现在屏幕上面,就比如之前写过的通讯录。    现实中的通讯录可以保存自己写进去的信息,下次方便查找,......
  • nginx架构&&基本数据结构&&配置&&模块&&请求详解
    初探nginx架构众所周知,nginx性能高,而nginx的高性能与其架构是分不开的。那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧。nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。我们也可以手动地关掉后台模式,让ng......
  • 初阶《操作符详解》 3. 移位操作符
    3.移位操作符<< 左移操作符>> 右移操作符注:移动的是二进制位,移位操作符的操作数只能是整数。一个存储的二进制码分原码、反码、补码1.十进制数据的二进制表现形式就是原码,原码最左边的一个数字就是符号位,0为正,1为负。2.正的整数的原码、反码、补码相同3.负的......
  • 如何学习C语言
    学习三阶段:初识——>初阶——>进阶注:蓝色字体皆可跳转一阶:初识1.基本了解C语言的基础知识,对C语言有一个大概的认识2.简单认识每个知识点,后期在初阶和进阶进行详细描述学习内容1.什么是C语言2.第一个C语言程序3.数据类型4.变量、常量5.字符串、转义字符、注释......
  • VScode配置C语言开发环境
    可以总结为两步1.本地安装和配置编译器2.VScode上安装C/C++扩展最后直接运行即可安装和配置编译器Windows系统可以使用mingw64,发布网址在这里https://sourceforge.net/projects/mingw-w64/files/这是压缩包格式,可以自由选择目录解压,比如我把mingw64放在D盘根目录在命......
  • JUC锁: 锁核心类AQS详解
    AbstractQueuedSynchronizer抽象类是核心,需要重点掌握。它提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。@立刀旁目录#带着BAT大厂的面试问题去理解#AbstractQueuedSynchronizer简介#AQS核心思想#AQS对资源的共享方式#AQS底层使用了模......
  • C语言之常用标准库介绍
    目录1标准库1.1诊断assert.h1.2字符类别测试ctype.h1.3错误处理errno.h1.4整型常量limits.h1.5地域环境locale.h1.6数学函数math.h1.7非局部跳转setjmp.h1.8可变参数表stdarg.h1.9公共定义stddef.h1.10输入输出stdio.h1.11实用函数stdlib.h1.12日期与时间函数time.h1......
  • 数据库系统概论(超详解!!!) 第十四节 数据库并发控制机制
    多用户数据库系统:允许多个用户同时使用的数据库系统例:飞机定票数据库系统银行数据库系统特点:在同一时刻并发运行的事务数可达数百上千个多事务执行方式:(1)事务串行执行每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行。不能充分利用系统资源,发挥数据库......