算数操作符、赋值操作符、单目操作符、强制类型转换

news2025/3/6 4:04:10

一、算术操作符(+-*/%

+ - * / %操作符都是双⽬操作符,有**两个操作数**的符号就叫做双目操作符

   10   +   4
   |        |
   |        |
操作数1   操作数2

// - % / * 以此类推

•操作符也被叫做:运算符

1. 符号+、符号 - 和 符号*

+ -* 分别用来完成加法减法乘法

在这里插入图片描述

2.符号/

•运算符/ ⽤来完成除法

2.1 整数除法

在这里插入图片描述

2.2浮点数(小数)除法

•下⾯⽰例中,尽管变量 a 的类型是 float (浮点数),但是 7 / 2 得到的结果是 3.000000,⽽不是3.500000 。原因就在于 C 语⾔⾥⾯的整数除法是整除只会返回整数部分丢弃⼩数部分在这里插入图片描述

•当我们希望得到的结果是浮点数,那么两个运算数之间必须至少有一个是浮点数!](https://i-blog.csdnimg.cn/direct/3493078dc4d4480a85930c8d247960ad.png)

3.符号%

•运算符 % 表⽰求模(余)运算,即返回两个整数相除的余值
•运算符%只能⽤于整数不能⽤于浮点数

3.1正数 和 负数 求模规则

•正数求模的规则与平常的运算一致
在这里插入图片描述

•负数求模的规则是,结果的正负号第⼀个运算数的正负号决定
在这里插入图片描述

二、赋值操作符 = 和 复合赋值操作符

1.赋值操作符=

•赋值操作符= 是⼀个随时可以给变量赋值的操作符
•在变量创建的时候给⼀个初始值叫初始化,在变量创建好后,再给⼀个值,这叫赋值,要注意区分初始化和赋值的概念

1  int a = 0; // 这是初始化
2  int b = 12; //这是初始化 
3  a = 12; //这是赋值,这里使用的是赋值操作符

2.连续赋值

1 int q = 2;
2 int w = 4;
3 int e = 0;
4 e = q = w - 2;// 连续赋值

•连续赋值写出的代码不容易理解,建议拆开来写,这样⽅便观察代码的执⾏细节,我们可以这样写

1 int q = 2;
2 int w = 4;
3 int e = 0;
4 e = q;
5 q = w - 2;

3.复合赋值符(+=-=*=/=%=

•符号+=

1 int a = 2;
2 int b = 4;
3  a = a + b;
4 //可以写成
5 a += b;

-= *= /= %= 同理

1 int a = 20;
2 int b = 2;
3 a -= b; //与 a = a - b;同理
4 a *= b; //与 a = a * b;同理
5 a /= b; //与 a = a / b;同理
6 a %= b; //与 a = a % b;同理

三、单目操作符(++--+-

•操作符只有⼀个操作数,被称为单⽬操作符。 ++、–、+(正)、-(负) 就是单⽬操作符

1.符号 ++

•在原先的值+1
在这里插入图片描述

1.1 前置++

•先+1,后使用

1 int a = 2;
2 int b = 0;
3  b = ++a;
4 // 相当于
5 a = a + 1;
6 b = a;
7 //那么 b 就等于 3

在这里插入图片描述
• 用 printf 演示(printf函数与++--符号有个有趣的特性https://blog.csdn.net/Siri_s12/article/details/144295304?spm=1001.2014.3001.5501)
在这里插入图片描述
++ 先运行a = 2 + 1 = 3,然后输出

1.2后置++

•先使用,再 +1

1 int a = 2;
2 int b = 0;
3  b = a++;

4 // 相当于
5 b = a;
6 a = a + 1;
7 //那么 b 就等于 2

在这里插入图片描述
• 用 printf 演示(printf函数与++--符号有个有趣的特性https://blog.csdn.net/Siri_s12/article/details/144295304?spm=1001.2014.3001.5501)

在这里插入图片描述
•第一个printf函数先输出 a = 2 后,++运行 a = 2 + 1 = 3,所以第二个 printf输出的是3

2.符号--

•在原先的值-1

2.1前置--

•先 -1,再使用

1 int a = 2;
2 int b = 0;
3  b = --a;
4 // 相当于
5 a = a - 1;
6 b = a;
7 //那么 b 就等于 1

在这里插入图片描述
• 用 printf 演示(printf函数与++--符号有个有趣的特性https://blog.csdn.net/Siri_s12/article/details/144295304?spm=1001.2014.3001.5501)
在这里插入图片描述
-- 先运行 a = 2 - 1 = 1,然后输出

2.2后置--

•先使用,再-1

1 int a = 2;
2 int b = 0;
3  b = a--;

4 // 相当于
5 b = a;
6 a = a - 1;
7 //那么 b 就等于 2

在这里插入图片描述
• 用 printf 演示(printf函数与++--符号有个有趣的特性https://blog.csdn.net/Siri_s12/article/details/144295304?spm=1001.2014.3001.5501)
在这里插入图片描述
•第一个printf函数先输出 a = 2 后,--运行 a = 2 - 1 = 1,所以第二个 printf输出的是1

3.符号+ 和符号-

+是正号,-是负号,都是单⽬操作符
•运算符 + 对正负值没有影响,是⼀个完全可以省略的运算符,但是写了也不会报错

1 int a = +2;
2 //相当于
3 int a = 2

•运算符 - ⽤来改变⼀个值的正负号(用法与日常数学相同),负数的前⾯加上 - 就会得到正数,正数的前⾯加上 - 会得到负数

1 int a = 2;
2 int b = -a;
3 int c = -2;
4 printf("b=%d c=%d\n", b, c);//这⾥的b和c都是-2
5 int a = -2;
6 int b = -a;
7 printf("b=%d\n", b); //这⾥的b是2

四、强制类型转换 (类型)

•先看一段代码
在这里插入图片描述
a的是int类型, 5.21是double类型,两边的类型不⼀致,编译器会报警告
•为了消除这个警告,我们可以使⽤强制类型转换
在这里插入图片描述
•这时编译器就不会报错了
•将 5.21 强制类型转换为int类型,这种强制类型转换只取整数部分
•强制类型转换都是万不得已的时候使⽤,如果不需要强制类型转化就能实现代码,最好不过。

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

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

相关文章

为AI聊天工具添加一个知识系统 之133 详细设计之74通用编程语言 之4 架构及其核心

本篇继续讨论 通用编程语言。 说明:本阶段的所有讨论都是围绕这一主题展开的,但前面的讨论分成了三个大部分(后面列出了这一段的讨论题目的归属关系)-区别distinguish(各别): 文化和习俗。知识…

RNN实现精神分裂症患者诊断(pytorch)

RNN理论知识 RNN(Recurrent Neural Network,循环神经网络) 是一种 专门用于处理序列数据(如时间序列、文本、语音、视频等)的神经网络。与普通的前馈神经网络(如 MLP、CNN)不同,RNN…

私有云基础架构

基础配置 使用 VMWare Workstation 创建三台 2 CPU、8G内存、100 GB硬盘 的虚拟机 主机 IP 安装服务 web01 192.168.184.110 Apache、PHP database 192.168.184.111 MariaDB web02 192.168.184.112 Apache、PHP 由于 openEuler 22.09 系统已经停止维护了&#xff…

rust学习笔记11-集合349. 两个数组的交集

rust除了结构体,还有集合类型,同样也很重要,常见的有数组(Array)、向量(Vector)、哈希表(HashMap) 和 集合(HashSet)字符串等,好意外呀…

超详细:数据库的基本架构

MySQL基础架构 下面这个图是我给出的一个MySQL基础架构图,可以清楚的了解到SQL语句在MySQL的各个模块进行执行过程。 然后MySQL可以分为两个部分,一个是server层,另一个是存储引擎。 server层 Server层涵盖了MySQL的大多数核心服务功能&am…

AI催化新一轮创业潮与创富潮:深圳在抢跑

作者:尺度商业大掌柜黄利明 2025年春节伊始至今,从DeepSeek R1开源模型持续引发全球围观,到腾讯混元Turbo S模型发布秀出了"秒回"绝活,再到国务院发布《新一代人工智能发展规划(2025-2030)》重磅…

Python:类型转换和深浅拷贝,可变与不可变对象

int():转换为一个整数,只能转换由纯数字组成的字符串 浮点型强转整型会去掉小数点及后面的数,只保留整数部分 #如果字符串中有数字和正负号以外的字符就会报错 float():整形转换为浮点型会自动添加一位小数 .0 如果字符串中有…

NAT 代理服务 内网穿透

🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 NAT 技术背景二:🔥 NAT IP 转换过程三:🔥 NAPT四:🔥 代理服务器🦋 正向…

高级课第五次作业

首先配置交换机,路由器 LSW1配置 [SW1]vlan batch 10 20 30 40 [SW1]int g0/0/2 [SW1-GigabitEthernet0/0/2]port link-type access [SW1-GigabitEthernet0/0/2]port default vlan 10 [SW1]int g0/0/3 [SW1-GigabitEthernet0/0/3]port link-type access […

51单片机编程学习笔记——动态数码管显示多个数字

大纲 视觉残留原理生理基础神经传导与处理 应用与视觉暂留相关的现象 频闪融合不好的实现好的效果 延伸 在《51单片机编程学习笔记——动态数码管》一文中,我们看到如何使用动态数码管显示数字。但是基于动态数码管设计的特点,每次只能显示1个数字。这就…

金蝶ERP星空对接流程

1.金蝶ERP星空OPENAPI地址: 金蝶云星空开放平台 2.下载金蝶云星空的对应SDK包 金蝶云星空开放平台 3.引入SDK流程步骤 引入Kingdee.CDP.WebApi.SDK 右键项目添加引用,在打开的引用管理器中选择浏览页签,点击浏览按钮,找到从官…

【随手笔记】利尔达NB模组

1.名称 移芯EC6263GPP 参数 指令备注 利尔达上电输出 [2025-03-04 10:24:21.379] I_AT_WAIT:i_len2 [2025-03-04 10:24:21.724] LI_AT_WAIT:i_len16 [2025-03-04 10:24:21.724] [2025-03-04 10:24:21.733] Lierda [2025-03-04 10:24:21.733] [2025-03-04 10:24:21.745] OK移…

Vue3的核心语法【未完】

Vue3的核心语法 OptionsAPI与CompositionAPI Options API(选项式) 和 Composition API (组合式)是 Vue.js 中用于构建组件的两种不同方式。Options API Options API Options API 是 Vue 2 中的传统模式,并在 Vue 3…

解决redis lettuce连接池经常出现连接拒绝(Connection refused)问题

一.软件环境 windows10、11系统、springboot2.x、redis 6 7 linux(centos)系统没有出现这问题,如果你是linux系统碰到的,本文也有一定大参考价值。 根本思路就是:tcp/ip连接的保活(keepalive)。 二.问题描述 在spr…

从DNS到TCP:DNS解析流程和浏览器输入域名访问流程

1 DNS 解析流程 1.1 什么是DNS域名解析 在生活中我们会经常遇到域名,比如说CSDN的域名www.csdn.net,百度的域名www.baidu.com,我们也会碰到IP,现在目前有的是IPV4,IPV6。那这两个有什么区别呢?IP地址是互联网上计算机…

解锁Egg.js:从Node.js小白到Web开发高手的进阶之路

一、Egg.js 是什么 在当今的 Web 开发领域,Node.js 凭借其事件驱动、非阻塞 I/O 的模型,在构建高性能、可扩展的网络应用方面展现出独特的优势 ,受到了广大开发者的青睐。它让 JavaScript 不仅局限于前端,还能在服务器端大展身手&…

JavaWeb后端基础(4)

这一篇就开始是做一个项目了,在项目里学习,我主要记录在学习过程中遇到的问题,以及一些知识点 Restful风格 一种软件架构风格 在REST风格的URL中,通过四种请求方式,来操作数据的增删改查。 GET : 查询 …

【文献阅读】The Efficiency Spectrum of Large Language Models: An Algorithmic Survey

这篇文章发表于2024年4月 摘要 大语言模型(LLMs)的快速发展推动了多个领域的变革,重塑了通用人工智能的格局。然而,这些模型不断增长的计算和内存需求带来了巨大挑战,阻碍了学术研究和实际应用。为解决这些问题&…

OpenGL ES -> GLSurfaceView纹理贴图

贴图 XML文件 <?xml version"1.0" encoding"utf-8"?> <com.example.myapplication.MyGLSurfaceViewxmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height…

DE2115实现4位全加器和3-8译码器(FPGA)

一、配置环境 1、Quartus 18.1安装教程 软件&#xff1a;Quartus版本&#xff1a;Quartus 18.1语言&#xff1a;英文大小&#xff1a;5.78G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09; 下载通道①百度网盘丨64位下载…