C语言学习笔记之操作符篇

目录

算术运算符

移位操作符

整型在内存中的存储(补充知识)

​编辑左移操作符

右移操作符

位操作符

赋值操作符

复合赋值操作符

单目操作符

关系操作符

逻辑操作符

&& 与 || 的计算特点

条件操作符

逗号表达式

下标引用操作符

函数调用操作符

结构体访问操作符


算术运算符

        +        -        *        /        %

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

        2.除了 % 操作符之外,其他的几个操作符可以作用于整型和浮点型。

        3.对于 / 操作符如果两个操作数都为整型,执行整数除法(舍弃余数返回整数)。而只要有浮点型执行的就是浮点数除法。

        4.剩余算术操作符用法与数学上相同。

移位操作符

        移位操作符移动的是变量的二进制位,因为整型在内存中存储的是补码,因此移动的是补码的二进制位

整型在内存中的存储(补充知识)

        整型数据在内存中以二进制存储,且存储的是补码。对于有符号整型数据来说,最高位是符号位,并不是有效数据,0表示正数,1表示负数。

        无符号整型数据的每一位都是有效数据。

        正数的原码,反码,补码相同。

        负数的反码是原码除了符号位外,其它位按位取反获得,补码是反码加1获得。

左移操作符

        左边抛弃、右边补0。

右移操作符

        C语言的右移运算规则有两种:

        1. 逻辑右移:左边用0填充,右边丢弃。
        2. 算术右移:左边用原该值的符号位填充,右边丢弃。

        至于要采用哪种右移规则,C语言并没有严格规定,具体取决于编译器的选择。

        C语言并没有定义移动负数位的规则,因此不要移动负数位!

位操作符

        顾名思义,位操作符操作的是整型数据存储在内存的二进制位(补码)。

        &:比较的两个整型数据的二进制位都为1则为1,否则为0。示例如下:

        |:比较的两个整型数据的二进制位有一个为1则为1,否则为0。示例如下:

        ^:比较的两个整型数据的二进制位相异为1,相同为0。示例如下:

赋值操作符

        =:可以给变量赋值的操作符。

复合赋值操作符

单目操作符

        只需要一个操作数的操作符。

        在C语言中,非0为真,0为假。 ! 的作用是逆转真假,真变假(0),假变真(1)。

        “-”和“+”分别表示值的正负,因为默认为正,因此“+”的应用场景有限。

        &可以取出数据的地址(第一个字节的地址(低地址))

        sizeof是一个操作符而不是函数,作用是计算数据类型的大小(字节)。

        ~ 用于将数据存储在内存中的二进制位(补码)的1置0,0置1。

        前置--(++)是先 -1(+1) 再使用,后置--(++)先使用再-1(+1)

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

        (类型):强制类型转换。

关系操作符

        新手为避免将 == 写成 =,可以采用如下方法:

逻辑操作符

        && 两侧的表达式或变量或常量都为真,则表达式结果为真,否则为假。

         || 两侧的表达式或变量或常量只要有一侧为真,则表达式结果为真,否则为假。

注意与位操作符 & 和 | 做区分!

&& 与 || 的计算特点

        当&& 左侧计算结果为0时,右侧便不会运算,整个表达式结果为假。

        当|| 左侧计算结果为非0时,右侧便不会运算,整个表达式结果为真(1)。

条件操作符

        当exp1的值为真时,exp2的结果作为整个表达式的结果;反之exp3的结果作为整个表达式的结果。

逗号表达式

        逗号表达式,就是用逗号隔开的多个表达式。
        逗号表达式,从左向右依次执行。最后一个表达式的结果作为整个表达式的结果。

下标引用操作符

       [ ]  操作数:一个数组名 + 一个索引值

函数调用操作符

        (): 接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。

结构体访问操作符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/809691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Canal 同步mysql 到es 日期格式报错解决

第一步:下载源码alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 (github.com) 第二步:编辑源码(client-adapter下面的clinet-adapter.escore): com.alibaba.otter.canal.client.adapter.es.core.support.ESSyncUt…

聚丙烯PP它的化学特性是什么? UV胶水能够粘接聚丙烯PP吗?

聚丙烯PP它的化学特性是什么? UV胶水能够粘接聚丙烯PP吗? 聚丙烯(Polypropylene,简称PP)是一种热塑性聚合物,属于聚烯烃类塑料之一。以下是聚丙烯的一些化学特性: 1. 分子结构: 聚丙烯是由丙烯…

【赛题】2024年MathorCup数学应用挑战赛C题赛题发布

2024年MathorCup数学应用挑战赛——正式开赛!!! C题 物流网络分拣中心货量预测及人员排班 赛题已发布,后续无偿分享各题的解题思路、参考文献、完整论文可运行代码,帮助大家最快时间,选择最适合是自己的赛…

[CSS]布局

盒子就是把网站分割成一小块一小块的吧,然后方便移动或者管理 背景 属性名描述background-color设置元素的背景颜色。background-image设置元素的背景图片。背景图片与背景颜色同时设置时,则图片覆盖颜色。写法如下:background-image: url(&…

2024年mathorcup数学建模思路及论文助攻

题目B 题 甲骨文智能识别中原始拓片单字自动分割与识别 甲骨文是我国目前已知的最早成熟的文字系统,它是一种刻甲或兽骨上的古老文字。甲骨文具有极其重要的研究价值,不仅对中国文明的起源具有重要意义,也对世界文明的研究有着深远影响。在我…

微信小程序-接入sse数据流并实现打字机效果( ChatGPT )

从流中获取的数据格式如下 小程序调用SSE接口 const requestTask wx.request({url: xxx, // 需要请求的接口地址enableChunked: true, // enableChunked必须为truemethod: "GET",timeout: 120000,success(res) {console.log(res.data)},fail: function (error) {//…

农场大乐斗游戏演示

功能介绍 农场系统 种菜操作:用户可以在农场中种植农作物,并进行浇水、杀虫、除草等维护操作。干旱、虫害、杂草都会影响农作物的生长速度和产量。农作物成熟后,用户需要及时收取,否则会在24小时后枯死,但可通过观看…

python通过url爬取视频资源到本地

很久之前我写过一篇通过url爬取图片地址的博文,说实在的,利用python实现自动化爬取资源确实很香。我本身是搞前端的。所以对py只是简单看了下,并不算多了解。因此之前写的那篇博文内容也很简单。简单到新手一看就会,一学就能用。方…

【C 数据结构】循环链表

文章目录 【 1. 基本原理 】【 2. 循环链表的创建 】2.1 循环链表结点设计2.2 循环单链表初始化 【 3. 循环链表的 插入 】【 4. 循环单链表的 删除操作 】【 5. 循环单链表的遍历 】【 6. 实例 - 循环链表的 增删查改 】【 7. 双向循环链表 】 【 1. 基本原理 】 对于单链表以…

刷代码随想录有感(29):用队列实现栈

不难理解&#xff0c;题干如下&#xff1a; 代码如下&#xff1a; class MyStack { public:queue<int> q;MyStack() {}void push(int x) {q.push(x);}int pop() {int size q.size();size--;while(size--){q.push(q.front());q.pop();}int res q.front();q.pop();retur…

kali桥接校园网实现上网

1.查看校园网信息 1. vim /etc/network/interfaces 添加下列信息&#xff0c;地址、网关、掩码和主机一样即可 3.vim /etc/resolv.conf 添加dns解析 4. /etc/init.d/networking restart 重启网络即可

探索AI工具导航网站

在现代科技发展迅猛的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经成为了各行各业中不可或缺的一部分。了解和利用最新的AI工具对于工作、学习和娱乐都具有重大意义。在这篇博客中&#xff0c;我们将探索一些最新的人工智能工具导航网站&#xff0c;以及其中一款名…

【力扣】125.验证回文串

刷题&#xff0c;过了真的好有成就感&#xff01;&#xff01;&#xff01; 题解&#xff1a; 根据题目要求&#xff0c;我们需要处理一下几个问题&#xff1a; 将大写字母转变成小写对原来的字符串进行处理&#xff0c;只要字母和数字考虑只有一个和字符串为空的情况 1、将…

docker最简单教程(使用dockerfile构建环境)

一 手里有的东西 安装好的docker+dockerfile 二 操作 只需要在你的dockerfile文件下执行命令 docker build -t="xianhu/centos:gitdir" . 将用户名、操作系统和tag进行修改就可以了,这就相当于在你本地安装了一个docker环境,然后执行 docker run -it xianhu/ce…

第10天:基础入门-HTTP数据包Postman构造请求方法请求头修改状态码判断

第十天 一、HTTP/S 数据包请求与返回 数据-方法&头部&状态码 常规请求-Get——>访问网页获取资源用户登录-Post——>提交数据进行验证 head&#xff1a;与服务器索与 get 请求 一致的相应&#xff0c;响应体不会返回&#xff0c;获取包含在小消息头中的原信息&…

Spring Web MVC的入门学习(二)

本篇接着Spring Web MVC的入门学习&#xff08;一&#xff09;-CSDN博客来继续学习Spring MVC。 一、从请求中获取Header 1、传统获取 header 获取Header也是从 HttpServletRequest 中获取。 代码&#xff1a; import jakarta.servlet.http.HttpServletRequest; import jakar…

vue3+vite+typescript+pinia+element_plus构建web项目

1.vite搭建 yarn create vite 可能会提示node版本不支持&#xff0c;需要根据提示升级或降级node版本 使用nvm下载对应版本 nvm download 18.x.xnvm use 18.x.x// 需要安装yarn npm install -g yarn// 重新执行 yarn create vite 过程中会提供选择&#xff0c;分别选择vue、…

MySQL 实例student表综合查询

目录 例题&#xff1a; 1、查询student表的所有记录 2、查询student表的第2条到4条记录 3、从student表查询所有学生的学号&#xff08;id&#xff09;、姓名&#xff08;name&#xff09;和院系&#xff08;department&#xff09;的信息 4、从student表中查询计算机系和英…

逆向案例二十一——遇到混淆怎么办

开始新的板块尝试&#xff0c;混淆了怎么办 网址&#xff1a;极简壁纸_海量电脑桌面壁纸美图_4K超高清_最潮壁纸网站 抓包抓到&#xff0c;好久没做解密了&#xff0c;奥里给干他&#xff01;&#xff1a; 搜索关键字&#xff0c;打上断点&#xff0c;点击第二页。 _0x10a345…

关于光模块SFP-10G-SR、SFP-10G-LRM和SFP-10G-LR的对比分析

万兆光模块是万兆网络搭建领域中的重要组成部分&#xff0c;是传输万兆速率必要组件。随着网络速率和容量需求的增加&#xff0c;目前万兆光模块的应用量非常大。而在万兆光模块中&#xff0c;短距离光模块的出货量居首&#xff0c;本文将详细介绍3款短距离万兆光模块SFP-10G-S…