算数运算符和算数表达式

news2025/1/23 16:52:59

基本算数运算符

算数运算符:

+(加法运算符或正值运算符)、-(减法运算符或负值运算符)、*(乘)、/(除)、%(求余数)

双目运算符:

双目运算符两边的数值类型必须一致才能进行运算,如果不一致,系统要先进性一致性转换,即运算符两边的数值类型向更高级别的一方保持一致

转换规则:

char->short->int->unsigned->long->float->double

数据精度:

所有实数的运算都以双精度方式进行,若是单精度,则需要在尾数后面补0转换为双精度数。

算数表达式和运算符的结合性和优先级

定义:

用算数运算符和括号将运算量连接起来的、符合C语言语法规则的表达式

运算对象:

函数、常量、变量等

可使用多层圆括号,但括号必须配对。运算时由内向外依次计算各表达式的值

对于不同优先级的运算符,按照运算符的优先级由高到低进行运算,若优先级相同,则按照结合方向进行运算

若运算符两侧的操作数类型不同,则先利用自动转换或强制类型转换,然后进行计算。

自加、自减运算符:

作用:

自加运算符“++”使运算变量的值增1,自减运算符“--”使运算变量的值减1

性质:

运算对象是整型或实型变量,但是不能对常量或表达式进行运算。均为单目运算符。

规则:

既可以作为前缀运算符,又可以作为后缀运算符

++i--i:先使i的值加1或减1,在使用i的值

i++i--:先使用i的值,再使i的值加1或减1

结合方向:

自左向右

赋值运算符与赋值表达式

“=”称作为赋值运算符,作用是将一个数值赋值给一个变量或将一个变量的值赋值给另一个变量,由赋值运算符组成的表达式为赋值表达式

一般形式:

变量名=表达式

注意事项:

赋值运算符的优先级别高于逗号运算符

赋值运算符“=”有别于关系运算符“==”

赋值运算符的左侧只能是变量,不能是常量或表达式。右侧可以是表达式,也包括赋值表达式

赋值表达式将最后赋值的值作为最终结果

复合赋值运算符

定义:

在赋值运算符的前面加上其他运算符就构成了符合赋值运算符,包括+=、-+、*=、/=、%=、<<=、>>=、&=、^=、|=

注意事项:

两个符号之间不可以由空格

符合赋值运算符的优先级与赋值运算符的相同

赋值运算中的类型转换

当赋值运算符两侧的类型不一致时,在赋值前系统将自动把右侧表达式求得的数值按照赋值号左边的变量类型进行转换(也可以用强制类型转换的方式)

常见题型与易错题

解析:

printf输出的数据都隐含右对齐

scanfprintf都是C语言提供的库函数,不是语句

赋值语句时一种执行语句,必须放在函数的可执行部分才行

printf输出数据所占的宽度由系统决定

解析:

++i;  --i;  也可以算赋值语句

位运算

C原因呢提供的6种位运算符

位运算的相关说明

操作数个数:

位运算种除了反“~”运算之外,其他所有位运算都是双目运算,要求运算符两侧各有一个操作数。

操作数类型:

位运算的操作数类型只针对整型或字符型数据,不能对实型数据进行位运算操作。

注意事项:

位运算仅作计算,不改变原有变量的值,只有赋值运算和自增自减运算才会改变原有变量的值。

常见题型与易错题

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

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

相关文章

行业地位失守,业绩持续失速,科沃斯的故事不好讲

特劳特曾在《定位》一书中提到&#xff0c;为了在容量有限的消费者心智中占据品类&#xff0c;品牌最好的差异化就是成为第一&#xff0c;做品类领导者或开创者&#xff0c;销量遥遥领先&#xff1b;其次分化品类&#xff0c;做到细分品类的唯一&#xff0c;即细分品类的第一。…

C# Solidworks二次开发:三种获取SW设计结构树的方法-第三讲

今天要讲的文章接着上一篇讲&#xff0c;第三种获取SW设计结构树的方法。 这个方法的逻辑是通过先获取第一个特征&#xff0c;然后通过循环不断的寻找下一个特征来完成获取所有节点。 1、获取第一个特征的API如下所示&#xff1a;FirstFeature Method (IModelDoc2) 这个API的…

构建Servlet项目流程

第一步&#xff1a;创建maven项目 部分基础 依赖的模板基础部分如下 maven-archetype-quickstart: 这是最基本的Archetype&#xff0c;它创建一个包含简单Java类和单元测试的项目。 maven-archetype-webapp: 这个Archetype创建一个简单的Java web应用&#xff0c;包括一个serv…

(数据结构)单链表的定义

#include<stdio.h> typedef struct LNode {int data;struct LNode* next; }LNode,*LinkList; //LNode为结构体类型&#xff0c;LinkList为指向单链表的指针 //初始化一个空的单链表 void InitList(LinkList L) {L NULL; //空表&#xff0c;暂时没有任何节点 } //判断单…

启动游戏出现concrt140.dll错误的8种解决方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是找不到concrt140.dll文件。这个错误通常会导致程序无法正常运行&#xff0c;给用户带来困扰。本文将介绍找不到concrt140.dll无法继续执行代码的8个方法&#xff0c;同时探讨concrt140.dll丢…

六:Day03_Mybatis-Plus

一、介绍 MyBatis-Plus&#xff08;简称 MP&#xff0c;是由baomidou(苞米豆)组织开源的&#xff09;是一个基于 MyBatis 的增强工具&#xff0c;它对 Mybatis 的基础功能进行了增强&#xff0c;但未做任何改变&#xff0c;Mybatis-Plus 其实可以看作是对 Mybatis 的再一次封装…

Compilation failureFailure executing javac, but could not parse the error

记一次maven编译错误导致的打包失败问题。错误如下 Compilation failure Failure executing javac, but could not parse the error: javac: Ч ı :  ? : javac <options> <source files> -help г ܵ ѡ 排查路径如下&#xff1a; 1&#xff…

java+springboot+ssm学生社团管理系统76c2e

本系统包括前台和后台两个部分。前台主要是展示社团列表、社团风采、社团活动、新闻列表等&#xff0c;前台登录后进入个人中心&#xff0c;在个人中心能申请加入社团、查看参加的社团活动等&#xff1b;后台为管理员与社团负责人使用&#xff0c;应用于对社团的管理及内容发布…

C#之扩展方法详解

前言&#xff1a; 我们想要向一个类型中添加方法&#xff0c;可以通过以下两种方式&#xff1a; 1.修改源代码。 2.在派生类中定义新的方法。 但是这两种方式都有缺点&#xff0c;1如果是别人的代码&#xff0c;你对其直接进行修改&#xff0c;可能破坏代码的完整性&#x…

高项备考葵花宝典-项目进度管理输入、输出、工具和技术(下,很详细考试必过)

项目进度管理的目标是使项目按时完成。有效的进度管理是项目管理成功的关键之一&#xff0c;进度问题在项目生命周期内引起的冲突最多。 小型项目中&#xff0c;定义活动、排列活动顺序、估算活动持续时间及制定进度模型形成进度计划等过程的联系非常密切&#xff0c;可以视为一…

【MySQL】MySQL的varchar字段最大长度是65535?

在MySQL建表sql里,我们经常会有定义字符串类型的需求。 CREATE TABLE `user` ( `name` varchar(100) NOT NULL DEFAULT COMMENT 名字) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ; 比方说user表里的名字,就是个字符串。MySQL里有两个类型比较适合这个场景。 char和varchar。…

Nexus搭建npm私库(角色管理、上传脚本)

安装Nexus 官网下载 https://www.sonatype.com/products/sonatype-nexus-oss-download 进入官网下载&#xff0c;最新下载方式需要输入个人信息才能下载了 选择对应的系统进行下载 Windows 推荐也下载 UNIX 版本&#xff08;Windows 版本配置比较难改&#xff09; 如果没有下…

TrustZone之SMC异常

作为支持两个安全状态的一部分&#xff0c;该架构包括了Secure Monitor Call&#xff08;SMC&#xff09;指令。执行SMC会引发Secure Monitor Call异常&#xff0c;该异常目标是EL3。 通常&#xff0c;SMC用于请求服务&#xff0c;可以是来自驻留在EL3中的固件&#xff0c;也可…

Android之Binder原理剖析

一&#xff1a;Binder的全面介绍 binder的出现 George Hoffman当时任Be公司的工程师&#xff0c;他启动了一个名为OpenBinder 的项目&#xff0c;在Be公司被ParmSource公司收购后&#xff0c; OpenBinder 由Dinnie Hackborn继续开发&#xff0c;后来成为管理ParmOS6 Cobalt O…

springboot_ssm_java学位论文盲审系统

本系统主要实现用户登录验证&#xff0c;用户使用邮箱&#xff0c;密码和选择身份进行登录&#xff0c;用户查看个人中心&#xff0c;提交论文&#xff0c;发表留言和问题反馈。用户在线注册。学生模块功能实现&#xff1a;学生注册&#xff0c;查看信息&#xff0c;修改资料&a…

Vue项目中实现浏览器标签页名字的动态修改

修改router/index.js文件 路由条目下面添加meta属性 meta:{title:DevOps运维平台 }示例 使用Vue的全局守卫函数beforeEach&#xff0c;在路由切换前动态修改浏览器标签页名字 router.beforeEach((to,from,next) > {document.title to.meta.titlenext() })

HSV算法及其改进 (附代码)

1.HSV HSV是一种颜色空间&#xff0c;它由色相&#xff08;Hue&#xff09;、饱和度&#xff08;Saturation&#xff09;和明度&#xff08;Value&#xff09;三个参数组成。HSV模型中&#xff0c;色相表示颜色的种类&#xff0c;饱和度表示颜色的纯度&#xff0c;明度表示颜色…

YOLOv8 YoLov8l 模型输出及水果识别

&#x1f368; 本文为[&#x1f517;365天深度学习训练营学习记录博客 &#x1f366; 参考文章&#xff1a;365天深度学习训练营 &#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制] &#x1f680; 文章来源&#xff1a;[K同学的学习圈子](https://www.yuque.com/m…

认识线程和创建线程

目录 1.认识多线程 1.1线程的概念 1.2进程和线程 1.2.1进程和线程用图描述关系 1.2.2进程和线程的区别 1.3Java 的线程和操作系统线程的关系 2.创建线程 2.1继承 Thread 类 2.2实现 Runnable 接口 2.3匿名内部类创建 Thread 子类对象 2.4匿名内部类创建 Runnable 子类对…

LLM之Agent(五)| AgentTuning:清华大学与智谱AI提出AgentTuning提高大语言模型Agent能力

​论文地址&#xff1a;https://arxiv.org/pdf/2310.12823.pdf Github地址&#xff1a;https://github.com/THUDM/AgentTuning 在ChatGPT带来了大模型的蓬勃发展&#xff0c;开源LLM层出不穷&#xff0c;虽然这些开源的LLM在各自任务中表现出色&#xff0c;但是在真实环境下作…