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的结果作为整个表达式的结果。

逗号表达式

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

下标引用操作符

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

函数调用操作符

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

结构体访问操作符

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

负载均衡(理解/解析)

目录 什么是负载均衡 应用场景 网络服务和应用: 云计算和虚拟化: 负载均衡分类 硬件负载均衡器 软件负载均衡器 部署方式 硬件部署: 软件部署: 云部署: 路由模式: 算法实现 轮询法(Round R…

MacOS - 程序坞,但图标消失不见了 但是还能用

如图 强迫症难受死 重启什么的都尝试了。不好使! 差点重装系统。 经验证 改名字可以修复。 但是系统的比如启动台 也显示不出来 全网好使的方案 在“应用程序”中打开“终端” 输入命令如下:(注意:需要 sudo 权限&#xff0…

【CLR】《Cyclical Learning Rates for Training Neural Networks》

WACV-2017 IEEE Winter Conference on Applications of Computer Vision 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method5 Experiments5.1 Datasets and Metrics5.2 CIFAR-10 and CIFAR-1005.3 ImageNet 6 Conclusion(o…

Unity 中消息提醒框

Tooltip 用于ui布局 using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; using UnityEngine.UI;[ExecuteInEditMode()] // 可以在编辑模式下运行public class Tooltip : MonoBehaviour {public TMP_Text header; // 头部文本publi…

✌粤嵌—2024/3/11—跳跃游戏

代码实现&#xff1a; 方法一&#xff1a;递归记忆化 int path; int used[10000];bool dfs(int *nums, int numsSize) {if (path numsSize - 1) {return true;}for (int i 1; i < nums[path]; i) {if (used[path i]) {continue;}path i;used[path] 1;if (dfs(nums, num…

ZYNQ之嵌入式开发03——按键中断实验

文章目录 按键中断控制LED的状态AXI GPIO实现按键中断使用多个AXI GPIO实现按键中断 GPIO的简图如下图所示。 GPIO对应的中断ID是52。 按键中断控制LED的状态 前面实验中已经做了按键控制LED状态的实验&#xff0c;但是LED的状态分为按键按下时和按键松开时的两种状态&…

00_STM32CubeMX如何新建一个工程

STM32CubeMX如何新建一个工程 STM32CubeMX如何新建一个工程以使用PA1口点亮LED为例子 STM32CubeMX如何新建一个工程 以使用PA1口点亮LED为例子 1.创建一个新工程 2.搜索芯片&#xff0c;然后双击 3.点击PA1引脚&#xff0c;设置为输出口 4.文件一定要保存到英文路径&#xff…

4. WPF应用程序中的未捕获异常处理

文章目录 一. 目标二. 技能介绍① UI未捕获异常的处理方式② 全局程序域抛出的未处理异常的捕获③ 异步Task任务中的异常捕获 三. 总结 一. 目标 理解和使用UI未捕获异常DispatcherUnhandledException的使用方法和触发方式.理解和使用程序域未捕获异常AppDomain.CurrentDomain.…

vs2022断点调试怎么看堆栈帧,找异常位置

打一个断点以后&#xff0c;会出现如图报错 我们要怎么找到报错的语句&#xff1f;鼠标点击->堆栈帧->上一行运行的位置->直到找到错误出错如图所示&#xff1a; 跳转到&#xff0c;我们手写的代码&#xff0c;执行出错的位置

【第十五届】蓝桥杯省赛C++b组

今年的蓝桥杯省赛已经结束了&#xff0c;与以往不同&#xff0c;今年又回到了8道题&#xff0c;而22&#xff0c;23年出现了10道题 大家觉得难度怎么样&#xff0c;欢迎进来讨论&#xff0c;博主今年没参加哈&#xff0c;大家聊聊&#xff0c;我听听大家的意见和看法哈 试题A:…

DSP笔记13-时间基准子模块Time base(TB)比较子模块Counter cpmpare(CC)

时间基准子模块Time base(TB) 同步&#xff0c;计数 CTR计数寄存器 PRD周期寄存器 CMP比较寄存器&#xff0c;占空比 EPWMA&#xff0c; EPWMB&#xff0c;两个比较寄存器&#xff0c;但只有以及计数寄存器以及一个周期寄存器 计数模式 计数时钟TBCLK HSPCLKDIVx x0,分…

HBuilderX 中开发vue,引入百度地图获取当前ip地址定位

实现功能&#xff1a;使用百度地图获取IP地址&#xff0c;定位到当前位置 参考文档地址&#xff1a;MapVGL | 快速入门 一、在有外网的情况下&#xff0c;常规引入百度地图的方法如下&#xff1a; 1、在index.html中引入 <script src"//api.map.baidu.com/api?v1.…

element问题总结之el-table使用fixed固定列后滚动条滑动到底部或者最右侧的时候错位问题

el-table使用fixed固定列后滚动条滑动到底部或者最右侧的时候错位 效果图前言解决方案纵向滑动滚动条滑动到底部的错位解决横向滚动条滑动到最右侧的错位解决 效果图 前言 在使用el-table固定行的时候移动滚动条会发现移动到底部或者移动到最右侧的时候会出现表头和内容错位或…

在 Flutter App 中使用 GPS 定位

现代手机上&#xff0c;不论是苹果 iPhone 还是安卓 Android&#xff0c;都配备了强大的定位能力。 定位主要通过卫星和地面基站提供的信号&#xff0c;获得不同精度的定位信息。 通过手机的操作系统&#xff0c;可以获取这些定位信息。这是手机操作系统给应用层提供的能力。…

Udio——革命性的AI音乐生成软件

Udio是一款革命性的AI音乐生成软件&#xff0c;由前谷歌DeepMind的顶尖AI研究人员和工程师共同创立&#xff0c;得到著名风险投资公司a16z的支持。它旨在为音乐爱好者和专业人士提供一个全新的音乐创作和分享平台。用户可以通过文本提示来生成音乐&#xff0c;支持广泛的音乐风…

numpy学习笔记(5),其他实用函数

8. 更多函数 8.1 随机数 8.1.1 常用随机数 8.1.1.1 numpy.random.rand(d0, d1, …, dn) 返回[0.0, 1.0)随机浮点数&#xff0c;即大于等于0.0&#xff0c;小于1.0。d0, d1, …, dn&#xff1a;返回的数组形状 # 使用numpy.random.rand函数 import numpy as np np.random.r…

百元内的运动蓝牙耳机哪个牌子好?五大高分品牌实测推荐

在追求健康生活的当下&#xff0c;运动已成为许多人日常生活的一部分&#xff0c;而音乐更是运动时的最佳伴侣&#xff0c;对于预算有限的学生党或普通消费者来说&#xff0c;如何在百元内挑选到一款性能优越、品质可靠的运动蓝牙耳机&#xff0c;确实是个不小的挑战&#xff0…

(六)C++自制植物大战僵尸游戏关卡数据讲解

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/xjvbb 游戏关卡数据文件定义了游戏中每一个关卡的数据&#xff0c;包括游戏类型、关卡通关奖励的金币数量、僵尸出现的波数、每一波出现僵尸数量、每一波僵尸出现的类型等。根据不同的游戏类型&#xff0c;定义了不同的通…

ATA-214高压放大器用在哪些实验中使用的

高压放大器在科学实验和工程应用中扮演着关键角色。它是一种能够将低电压信号放大到高电压水平的设备。这种放大器通常用于需要处理高电压信号的实验和应用中。以下是高压放大器在各种实验中的应用范围。 粒子物理实验&#xff1a;在粒子物理实验中&#xff0c;科学家使用高压放…

【分享】3种方法取消Word文档的“打开密码”

我们知道&#xff0c;Word文档可以设置“打开密码”&#xff0c;防止文档被随意打开&#xff0c;那后续不需要密码保护了&#xff0c;要怎么取消呢&#xff1f;不小心把密码忘记了还可以取消吗&#xff1f;不清楚的小伙伴一起来看看吧&#xff01; 如果是Word文档不再需要密码…