C语言编程3:运算符,运算符的基本用法

C语言3🔥:运算符,运算符的基本用法

一、运算符🌿

🎇1.1 定义

运算符是指进行运算的动作,比如加法运算符"+“,减法运算符”-"

算子是指参与运算的,这个值可能是常数,也可能是变量,还可能是一个方法的返回值

🎇1.2 单目运算符

只有一个算子的运算符: +,-

例如-a,-b,+a,+b

常用的单目运算符:

+正值
-负值
逻辑反
&取地址
sizeof操作数的类型长度(计算的是变量/类型所占空间的大小,单位是字节)
~对一个数的二进制按位取反
(类型)强制类型转换

🎇1.3 双目运算符

  • 我们已知,只有一个算子的运算符是单目运算符

  • 那么, 有两个算子的运算符就是双目运算符

  • 如:a+bb-a

  • 那么,有三个算子的运算符就是三目运算符

🎇1.4 赋值运算符

赋值(=) 也是运算,也有结果

举个栗子

a=6的结果是a被赋予的值,也就是6

a=b=6在计算机中可以看成是:a = (b=6),也就是,先把6赋给b(此时b的值就是6),然后再把b的值(6)赋给a,所以a的值也是6

= += -= *= /= &= ^= I= >>= <<=

用法:

a+=3 相当于:a=a+3

a-=6 相当于:a=a-6

代码示例如下:


#include <stdio.h>int main()
{int a=6,b=6;                  //初始化a+=3;                         //计算b=b+3;printf("a=%d,b=%d\n",a,b);     //输出运算结果return 0;
}

运行结果:


a=9,b=9

解析: a+=3 相当于 a=a+3,把a=6的值代入得:a=6+3 a的值:9

🎇1.5 运算符优先级

🎇1.6 算数运算符(特别重要)

+加法运算符
-减法运算符
*乘法运算符
/除法运算符
%取余运算符
/ 的用法:
int a,b,c,d,e,f,g;a=5/2;
b=12345/10000;
c=12345/1000;
d=12345/100;
e=12345/10;printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%d",a,b,c,d,e);

运行结果:


a=2
b=1
c=12
d=123
e=1234

解析

a=5/2

5/2=2.5,由于a是整型(int),整形不包含小数部分,在计算时会把小数部分全部舍弃,所以a=5/2中a的结果是2

b=12345/10000 与e=12345/10 (我的想法:12345/10000,除数有几个零,被除数就舍弃几位数,如12345/10000,除数有4个零,那么被除数就舍弃后面四位数,所以答案就是:1)

由于b与e是整型(int),整形不包含小数部分,在计算时会把小数部分全部舍弃

所以b的值为1,e的值为1234。

% (取余) 的用法:
int a,b,c,d,e;a=1%3;
b=1%2;
c=30%90;
d=12345%10000;
e=12345%10;printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%d",a,b,c,d,e);

运行结果


a=1
b=1
c=30
d=2345
e=5

解析:

a=1%3,c=30%90的解析如右 ,1向3取余,1除以3余1。同上30%90=30

1%2 1向2取余 1除以2=0.5,由于是int类型会舍弃小数,所以1/2的值只能是0,所以原来的除数1,还会留下了,所以1%2=1

d=12345%10000,e=12345%10

所以12345除以10000的余数就是:2345,12345除以10,余5

所以 :d=12345%10000=2345,e=12345%10=5

🎇1.7 关系运算符

“==”判断相等
“!=”不等于
“>”大于
“<”小于
“>=”大于等于
“<=”小于等于

关系运算符的结果:判断如果结果是 true(真) 则为 1

判断如果结果是 false(假)则为 0

用法:
int a=7,b=3,c;a==b        //的值是0,因为a不等于b,所以是false(假),所以值是0
a!=b        //的值是1,a不等于b,判断正确,所以是true(真),所以值是1

🎇1.8 逻辑运算符

逻辑运算是对逻辑量进行的运算,结果只有0或者1

逻辑量关系运算逻辑运算的结果

用代码表示: a大于等于1,小于等于6

a>=1 && a<=6;

逻辑优先级

! > && > ||

短路:
  1. 逻辑运算是自左向右进行的,如果左边的结果已经能够决定结果了,就不会做右边的计算了

  2. 对于&&,左边是false时就不会做右边的运算了

  3. 对于||,左边是true时就不会做右边的运算了

  4. 不要把赋值,包括复合赋值组合进表达式

总体优先级排名:
优先级运算符结合性
1()从左到右
2!± ++ –从右到左(单目的+和-)
3- / %从左到右
4+ -从左到右
5< <= > >=从左到右
6== !=从左到右
7&&从左到右
8
9= += -= *= /= %=从右到左

🎇1.9 位运算符

“&”按位与
“I”按位或
“<<”左移
“>>”右移

🎇1.10 条件运算符:

? : ;

如:


int count=30;count = (count>20)?count-10:count+10;意思是如果条件满足,count如果>20;则count-10,否则就是执行count+10

也就是说:当count>20是 真(非零或1) 的时候执行前者,是 假(0) 执行后者

优先级:条件运算符的优先级高于赋值运算符,但是低于**其他运算符

🎇1.11 逗号运算符

逗号用来连接两个表达式,并以其右边的表达式的值作为它的结果。逗号的优先级是所有运算符中最低的,所以它两边的表达式会先计算;逗号的组合关系是自左向右,所以左边的表达式会先计算,而右边的表达式的就留下来作为逗号运算的结果

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

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

相关文章

自动化测试高级控件交互方法:TouchAction、触屏操作、点按,双击,滑动,手势解锁!

在自动化测试领域中&#xff0c;TouchAction 是一种非常强大的工具&#xff0c;它允许我们模拟用户在设备屏幕上的各种触摸事件。这种模拟不仅限于简单的点击操作&#xff0c;还包括滑动、长按、多点触控等复杂的手势。 点按与双击 点按和双击是触屏设备上最基本的操作之一。…

使用 Qt 和 ECharts 进行数据可视化

文章目录 示例图表预览折线图散点图柱状图使用 Qt 和 ECharts 进行数据可视化一、准备工作1. 安装 Qt2. 准备 ECharts二、在 Qt 中使用 ECharts1. 创建 Qt 项目2. 配置项目文件3. 在 UI 中添加 WebEngineView4. 加载 ECharts三、创建折线图、散点图和柱状图1. 折线图2. 散点图3…

sizeof跟strlen的用法及差异

sizeof是一个操作符&#xff0c;不是函数&#xff1b; 而strlen是一个库函数&#xff1b; sizeof是计算所占内存空间的&#xff0c;不管你内容是什么&#xff0c;只要知道占多少内存&#xff0c; 而strlen是跟内容有关的&#xff0c;它是计算字符串长度的&#xff08;字符数…

java —— tomcat 部署项目

一、通过 war 包部署 1、将项目导出为 war 包&#xff1b; 2、将 war 包放置在 tomcat 目录下的 webapps 文件夹下&#xff0c;该 war 包稍时便自动解析为项目文件夹&#xff1b; 3、启动 tomcat 的 /bin 目录下的 startup.bat 文件&#xff0c;此时即可从浏览器访问项目首页…

【Linux】文件内容查看命令——cat,tac,more,less,head,tail,od

如果我们要查看一个文件的内容时&#xff0c;该如何是好&#xff1f; 这里有相当多有趣的命令可以来分享一下&#xff1a;最常使用的显示文件内容的命令可以说是cat与more及less了。 此外&#xff0c;如果我们要查看一个很大的文件&#xff08;好几百MB时)&#xff0c;但是我们…

使用PyTorch设计卷积神经网络(CNN)来处理遥感图像Indian Pines数据集

目录 使用PyTorch设计卷积神经网络&#xff08;CNN&#xff09;来处理遥感图像Indian Pines数据集&#xff0c;以下是设计和实现这些网络的步骤&#xff1a; 1.数据准备&#xff1a; 1.1 首先&#xff0c;需要加载Indian Pines数据集。 1.2 将数据集转换为PyTorch张量&#x…

LLM推理引擎怎么选?TensorRT vs vLLM vs LMDeploy vs MLC-LLM

LLM擅长文本生成应用程序&#xff0c;如聊天和代码完成模型&#xff0c;能够高度理解和流畅。但是它们的大尺寸也给推理带来了挑战。有很多个框架和包可以优化LLM推理和服务&#xff0c;所以在本文中我将整理一些常用的推理引擎并进行比较。 TensorRT-LLM TensorRT-LLM是NV发布…

imazing电脑怎么下载 imazing怎么下载软件 使用iMazing下载和卸载Apple设备上的应用程序

iMazing官方版是一款管理苹果设备的软件&#xff0c;是一款帮助用户管理 iOS手机的PC端应用程序&#xff0c;能力远超 iTunes 提供的终极 iOS 设备管理器。在iMazing官方版上与苹果设备连接后&#xff0c;可以轻松传输文件&#xff0c;浏览保存信息等&#xff0c;功能比iTunes更…

泛微开发修炼之旅--35关于基于页面扩展和自定义按钮实现与后端交互调用的方法

文章链接&#xff1a;35关于基于页面扩展和自定义按钮实现与后端交互调用的方法

vue3中使用 tilwindcss报错 Unknown at rule @tailwindcss

解决方法&#xff1a; vscode中安装插件 Tailwind CSS IntelliSense 在项目中的 .vscode中 settings.json添加 "files.associations": {"*.css": "tailwindcss"}

基于YOLOv9的脑肿瘤区域检测

数据集 脑肿瘤区域检测&#xff0c;我们直接采用kaggle公开数据集&#xff0c;Br35H 数据中已对医学图像中脑肿瘤位置进行标注 数据集我已经按照YOLO格式配置好&#xff0c;数据内容如下 数据集中共包含700张图像&#xff0c;其中训练集500张&#xff0c;验证集200张 模型训…

AI绘画:艺术与科技的交融,创新浪潮与无限可能

在科技日新月异的当下&#xff0c;AI 绘画作为人工智能领域的一颗璀璨新星&#xff0c;正以惊人的速度在国内崭露头角&#xff0c;引发了艺术与技术交融的全新变革。随着人工智能技术的飞速发展&#xff0c;AI绘画已成为艺术与科技交融的新宠。2024年&#xff0c;AI绘画行业在国…

Autogen智能体实战-Autogen框架介绍

文章目录 一&#xff0c;Autogen简介二&#xff0c;Autogen原理1&#xff0c;Autogen原理图解2&#xff0c;拆解Autogen是如何完成绘制特斯拉股票趋势图的 这篇文章介绍一个开源的Agent框架-微软的Autogen。 一&#xff0c;Autogen简介 官网:https://microsoft.github.io/aut…

在idea中查看某个接口的所有实现类图

一、选中某个接口右键 ---> Diagrams ---> show Diagrams&#xff0c;然后就会进入一个新的 tab 页&#xff1b; 二、然后在出来的图上选中某个接口右键 ---> show Implementations&#xff0c;就会显示选中接口的所有实现类列表&#xff1b; 三、最后 ctrl A 全部选…

uniapp父页面调用子页面 组件方法记录

文章目录 导文如何点击父页面&#xff0c;触发子页面函数先写一个子页面的基础内容父元素 如何点击父页面&#xff0c;修改子页面的值先写一个子页面的基础内容父元素 导文 如何点击父页面&#xff0c;触发子页面函数&#xff1f; 如何点击父页面&#xff0c;修改子页面的值&am…

英区PayPal账号3分钟绑定WISE英镑的银行收款账户

正文开始&#xff0c;我们先登录英区PayPal账号后 有很多银行给我们选择&#xff0c;但是没有WISE的选项&#xff0c;所以我们手动输入“WISE”&#xff0c;然后如下图所示点击“Enter Your Bank Detailds”输入银行详细信息按钮。 然后输入我们的WISE英镑账户的收款银行信息&a…

Advanced Electronic Materials:磁性智能皮肤作为人机界面

近年来&#xff0c;电子可穿戴设备的普及率迅速上升&#xff0c;柔性可穿戴设备因其高生物相容性、功能性、适应性和低成本而在人机界面上引起了极大的关注。柔性磁性智能皮肤是这一快速发展的柔性可穿戴电子领域的一部分&#xff0c;为人类感知发展开辟了一条新的道路。磁感是…

SpringCloud第一篇Docker基础

文章目录 一、常见命令二、数据卷三、数据挂载四、自定义镜像五、网络 一、常见命令 Docker最常见的命令就是操作镜像、容器的命令&#xff0c;详见官方文档&#xff1a; https://docs.docker.com/ 需求&#xff1a; 在DockerHub中搜索Nginx镜像&#xff0c;查看镜像的名称 …

k8s集群如kubeadm init和kube-flannel.yam问题

查看k8s中角色内容kubectl get all (显示pod和server以及delment) 删除应用资源选择删除先删除部署查看部署和pod没了服务还在&#xff0c;但资源和功能以及删除&#xff0c;删除服务kubectl delete 服务名&#xff08;部署名&#xff09;&#xff0c;get pods 获取默认空间的容…

从资金到未来:技术融资如何重塑IT顾问在AI与网络安全的角色?

一方面是人工智能 &#xff08;AI&#xff09; 和机器学习 &#xff08;ML&#xff09; 的双引擎&#xff0c;另一方面是网络安全和数据泄露威胁中不断变化的威胁形势&#xff0c;IT 格局正在经历翻天覆地的变化。这场数字革命对 IT 顾问来说既是挑战也是机遇&#xff0c;但要成…