C语言第十一课--------操作符的使用与分类-------基本操作
作者前言
作者介绍:
作者id:老秦包你会,
简单介绍:
喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨
个人主页::小小页面
gitee页面:秦大大
一个爱分享的小博主 欢迎小可爱们前来借鉴
_______________________________________________________
______________________________________________________________________
目录
操作符类别
操作符的使用
算术操作符
+ - * / % * - +等操作符就跟数学的用法一样,这里先不讲,
/ 有两种用法,一种为整数除法,一种为小数除法
#include <stdio.h>
int main()
{int a = 20;printf("%d\n", a / 5);printf("%lf\n", a / 5.0);return 0;
} 
%只能是两边只能是整数
移位操作符(针对的是该数的补码)
计算机采用的就是取反,加1的套路

C语言中,内存存一个整数是存它的补码,(整数在内存中存储的是补码),整数在计算的时候使用的也是补码
>>右移运算符
分类:1.逻辑右移
2. 算术右移
这两种右移是由编译器决定的,不能由个人决定,vs编译器是算术右移
#include <stdio.h>
int main()
{int m = 7;int n = 7 >> 1;printf("%d", n);return 0;
} 
算术右移:
根据你要移动的位数在最右边舍弃几位,并在最左端补上0,,而负数的,在最左端补上1
逻辑右移:
根据你要移动的位数在最右边舍弃几位,并在最左端补上0
<<左操作符
你要移动的位数在最左边舍弃几位,并在最右端补上0,
位操作符(针对的是该数的补码)
#include <stdio.h>
int main()
{int a = -5;int b = 3;printf("%d\n", a & b);printf("%d\n", a | b);printf("%d\n", a ^ b);return 0;
}
& //按位与
跟数学的与相识,全为真才是真,两数对应的二进制位都为1才是1,其他都是0
-5 & 3==》00000000000000000000000000000011(补码)
| //按位或
跟数学的或相识,有真才是真,全假才为假,两数对应的二进制位只有有一个为1,才是1,全部为0才是0
-5 | 3==》1111111111111111111111111111010 (补码)==》10000000000000000000000000000101 (原码)
^ //按位异或
两数对应的值是一样的就为0,不同就为1
-5^3==>1111111111111111111111111111000(补码) ==》10000000000000000000000000001000(原码)
a^a=a
0^a=a
我们计算两数交互的时候可以利用这个方法来,可以少创建一个变量,这个方法的可读性不高,建议不要使用太多
#include <stdio.h>
int main()
{int a = 5;int b = 6;printf("a=%d b=%d\n", a, b);a = a ^ b;b = a ^ b;a = a ^ b;printf("a=%d b=%d\n", a, b);return 0;
} 需要注意的是,这些操作符适用于整形
赋值操作符
=
从右向左赋值
复合赋值符
+= 、-= 、*= 、/= 、%= 、>>= 、<<= 、&= 、|= 、^=
这些的使用就跟 a = a+b===> a+=b是一样的效果
单目操作符

!是把真变成假,假变成真 变成假是0, 变成真是1
&取地址,
* 解引用操作符
#include <stdio.h>int main()
{int a = 0;printf("%p\n", &a);int* p = &a;int arr[10];int* pa = arr;printf("%p\n", pa);printf("%p\n", &pa);*p = 15;//对p解引用操作,*p是通过p中存放的地址,找到p指向的对象,*p就是aprintf("%d\n", a);return 0;
} sizeof计算结果返回size_t类型也就是unsigned int (无符号整型) 输出格式是%zd
#include <stdio.h>
int main()
{int arr[10];printf("%zd\n", sizeof arr);printf("%zd\n", sizeof (arr));printf("%zd\n", sizeof (int));printf("%zd\n", sizeof arr / sizeof(int));return 0;
} sizeof 不是函数,因为函数的引用的()不能省略,
是计算类型或者变量的大小,单位是字节
计算变量大小可以不写(),如果计算类型要保留()
#include <stdio.h>
int main()
{int a = 0;printf("%d\n", ~a);return 0;
}
结果为-1 ,0的补码为00000000000000000000000000000000,~0则是11111111111111111111111111111111,取反加1得到原码为10000000000000000000000000000001
#include <stdio.h>
int main()
{int a = 2;printf("%d", a | (1 << 2));printf("%d", (a | (1 << 2)) & (1 << 2));return 0;
} ++、--都有两种用法,分别是前置和后置
++
前置++:先加1 再使用
后置++;先使用再加1
#include <stdio.h>
int main()
{int a = 0;int b = ++a;printf("a=%d b=%d\n", a, b);b = a++; printf("a=%d b=%d\n", a, b);return 0;
} --
前置--:先减1 再使用
后置--;先使用再减1
#include <stdio.h>
int main()
{int a = 0;int b = --a;printf("a=%d b=%d\n", a, b);b = a--; printf("a=%d b=%d\n", a, b);return 0;
} (类型) 强制类型转换
#include <stdio.h>
int main()
{int a = (int)3.14;printf("%d", a);return 0;
} 类型转换尽量能不使用就不使用
关系操作符
逻辑操作符
#include <stdio.h>
int main()
{int a = 1;int b = 0;printf("%d", a && b);printf("%d", a || b);return 0;
} 短路操作
#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;
} 使用&&时只要一方为假另一方就不用算了
使用|| 只要一边为真,另一方就不用算了
总结:
操作符展示到这里了,后面还有一篇介绍下面的,有不懂的小可爱可以私聊我
相关文章:
C语言第十一课--------操作符的使用与分类-------基本操作
作者前言 作者介绍: 作者id:老秦包你会, 简单介绍: 喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 个人主页::小小页面 gitee页面:秦大大 一个爱分享的小博主 欢迎小可爱们…...
2,继承、内联函数、虚继承、友元、构造析构函数、初始化列表
继承 2.1结构体成员权限2.1.1访问权限2.1.2类与结构体 2.2类的成员函数2.2.1类内规则2.2.2类成员内联函数inline 2.3类的继承2.3.1类的继承与成员函数2.3.2类的多继承2.3.2.1类的多继承:菱形问题提出 2.3.3类的虚继承(关键字virtual) 2.4友元…...
Mkdocs中利用Js实现大小圈鼠标拖动样式
在docs/javascripts/extra.js下复制粘贴: var CURSOR;Math.lerp (a, b, n) > (1 - n) * a n * b;const getStyle (el, attr) > {try {return window.getComputedStyle? window.getComputedStyle(el)[attr]: el.currentStyle[attr];} catch (e) {}return …...
pytorch(6)——神经网络基本骨架nn.module的使用
1 神经网络框架 1.1 Module类的使用 NN (Neural network): 神经网络 Containers: 容器 Convolution Layers: 卷积层 Pooling layers: 池化层 Padding Layers: 填充层 Non-linear Activations (weighted sum, nonlinearity): 非线性激活 Non-linear Activations (other): 非线…...
论文精读之BERT
目录 1.摘要(Abstract) 2.引言(Introduction): 3.结论(Conlusion): 4.BERT模型算法: 5.总结 1.摘要(Abstract) 与别的文章的区别是什么:BERT是用来设计去…...
实战:Docker+Jenkins+Gitee构建CICD流水线
文章目录 前言Jenkins部署创建Jenkins docker-compose配置maven源启动Jenkins容器安装插件Gitee ssh公匙配置与测试项目提交 Jenkins创建流水线写在最后 前言 持续集成和持续交付一直是当下流行的开发运维方式,CICD省去了大量的运维时间,也能够提高开发…...
7.25 Qt
制作一个登陆界面 login.pro文件 QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on …...
P1420 最长连号
题目描述 输入长度为 n n n 的一个正整数序列,要求输出序列中最长连号的长度。 连号指在序列中,从小到大的连续自然数。 输入格式 第一行,一个整数 n n n。 第二行, n n n 个整数 a i a_i ai,之间用空格隔开…...
UVA-1354 天平难题 题解答案代码 算法竞赛入门经典第二版
GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 这道题需要: 1. 遍历二叉树的每种构成方式。我这里每次把当前所有结点列出,然后遍历选取两个组合构成一个新结点,原来的结点剔除,新结点加入。…...
电机故障诊断(python程序,模型为CNN结合LSTM)
代码运行环境要求:TensorFlow版本>2.4.0,python版本>3.6.0 运行效果视频:电机故障诊断(python代码)_哔哩哔哩_bilibili 1.电机常见的故障类型有以下几种: 轴承故障:轴承是电机运转时最容…...
ubuntu 20.04 rtc时间显示问题探究
1、硬件与软件 本次测试的硬件为RK3568芯片,操作系统为ubuntu 20.04。 2、RTC与系统时间 先说结果,如果RTC驱动不可用或者RTC内部存储的时间非法, 那么操作系统会存储上一次有效的时间,当再次上电时,date命令会使用存储…...
数值分析第七章节 用Python实现非线性方程与方程组的数值解法
参考书籍:数值分析 第五版 李庆杨 王能超 易大义编 第7章 非线性方程与方程组的数值解法 文章声明:如有发现错误,欢迎批评指正 文章目录 迭代法求解 x e x − 1 0 xe^x-10 xex−10牛顿法求解 x e x − 1 0 xe^x-10 xex−10简化牛顿法求解 …...
利用MATLAB制作DEM山体阴影
在地理绘图中,我们使用的DEM数据添加山体阴影使得绘制的图件显得更加的美观。 GIS中使用ArcGIS软件就可以达到这一目的,或者使用GMT,同样可以得到山体阴影的效果。 本文提供了一个MATLAB的函数,可以得到山体阴影。 clear all;c…...
ubuntu 使用 rsync 的 SSH 方式同步备份远程WEB服务器
ubuntu 20.04 自带 rsync ,对于 WEB 服务器这种更新频率不高的情况,直接使用定时同步复制远程服务器的方法,比较直接和简单! $ rsync --version rsync version 3.1.3 protocol version 31 参考: Ubuntu20.04中的rsyn…...
机器学习 | Python实现NARX模型预测控制
机器学习 | Python实现NARX模型预测控制 目录 机器学习 | Python实现NARX模型预测控制效果一览基本介绍研究内容程序设计参考资料效果一览 基本介绍 机器学习 | Python实现NARX模型预测控制 研究内容 贝叶斯黑盒模型预测控制,基于具有外源输入的非线性自回归模型的预期自由能最…...
M5ATOMS3基础03给ROS1发一个问候(rosserial)
引出问题 关于之前2020年的博客: 01. ESP8266和ROS调试一些问题汇总 02. ESP8266和ESP32配置(需使用ROS1和ROS2) 效果展示 使用M5ATOMS3与ROS1(kinetic,melodic,noetic)版本通信比较通用的是…...
基于Vue3实现鼠标按下某个元素进行移动,实时改变左侧或右侧元素的宽度,以及点击收起或展开的功能
其原理主要是利用JavaScript中的鼠标事件来控制CSS样式。大致就是监听某个DOM元素的鼠标按下事件,以及按下之后的移动事件和松开事件。在鼠标按下且移动过程中,可实时获得鼠标的X轴坐标的值,通过简单计算,可计算出目标元素的宽度&…...
使用MyBatis(2)
目录 一、定义接口、实体类、创建XML文件实现接口) 二、MyBatis的增删改查 🍅1、MyBatis传递参数查询 🎈写法一 🎈写法二 🎈两种方式的区别 🍅2、删除操作 🍅3、根据id修改用户名 &#x…...
【FPGA/D6】
2023年7月25日 VGA控制器 视频23notecodetb 条件编译error时序图保存与读取??RGBTFT显示屏 视频24PPI未分配的引脚或电平的解决方法 VGA控制器 视频23 note MCU单片机 VGA显示实时采集图像 行消隐/行同步/场同步/场消隐 CRT:阴极射线管 640…...
【WebGIS实例】(10)Cesium开场效果(场景、相机旋转,自定义图片底图)
效果 漫游效果视频: 【WebGIS实例】(10)Cesium开场效果(场景、相机 点击鼠标后将停止旋转并正常加载影像底图: 代码 可以直接看代码,注释写得应该比较清楚了: /** Date: 2023-07-28 16:21…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
