C语言运算符——自增与自减

2023-11-10

自增与自减

  1. 一个整数类型的变量自身加 1 可以这样写:
    a = a + 1;或者a += 1;不过,C语言还支持另外一种更加简洁的写法,就是:a++;或者++a;这种写法叫做自加或自增,意思很明确,就是每次自身加 1。
  2. 相应的,也有a–和--a,它们叫做自减,表示自身减 1。++和–分别称为自增运算符和自减运算符,它们在循环结构中使用很频繁。

需要重点说明的是,++ 在变量前面和后面是有区别

下面的例子能更好地说明前自增(前自减)和后自增(后自减)的区别:
#include <stdio.h>
int main()
{
int a = 10, b = 20, c = 30, d = 40;
int a1 = ++a, b1 = b++, c1 = --c, d1 = d- -;

printf("a=%d, a1=%d\n", a, a1);
printf("b=%d, b1=%d\n", b, b1);
printf("c=%d, c1=%d\n", c, c1);
printf("d=%d, d1=%d\n", d, d1);

return 0;

}
输出结果:
a=11, a1=11
b=21, b1=20
c=29, c1=29
d=39, d1=40

  1. a、b、c、d 的输出结果相信大家没有疑问,下面重点分析a1、b1、c1、d1:
  1. 对于a1=++a,先执行 ++a,结果为 11,再将 11 赋值给 a1,所以 a1 的最终值为11。而 a 经过自增,最终的值也为 11。

  2. 对于b1=b++,b 的值并不会立马加 1,而是先把 b 原来的值交给 b1,然后再加 1。b 原来的值为 20,所以 b1 的值也就为 20。而 b 经过自增,最终值为 21。

  3. 对于c1=–c,先执行 --c,结果为 29,再将 29 赋值给c1,所以 c1 的最终值为 29。而 c 经过自减,最终的值也为 29。

  4. 对于d1=d–,d 的值并不会立马减 1,而是先把 d 原来的值交给 d1,然后再减 1。d 原来的值为 40,所以 d1 的值也就为 40。而 d 经过自减,最终值为 39。可以看出:a1=++a;会先进行自增操作,再进行赋值操作;而b1=b++;会先进行赋值操作,再进行自增操作。c1=–c;和d1=d–;也是如此。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言运算符——自增与自减 的相关文章

  • 监控视频压缩4—Fast ROI-Based HEVC Coding for Surveillance Videos

    监控视频不同于网络视频等 其特殊性为背景区域一般不变 固定相机拍摄 或者变化很有规律 移动相机拍摄 本系列记录针对监控视频的视频压缩各类方法 论文 Fast ROI Based HEVC Coding for Surveillance Vi
  • 如何修改dmesg log buffer size

    需要修改 Linux 内核源码中的一个控制 log buffer size 的宏 CONFIG LOG BUF SHIFT buffer size 是 2 shift 加大这个就可以 一 配置 make menuconfig General
  • 排序算法 - 归并排序详解

    基本介绍 归并排序 MERGE SORT 是利用归并的思想实现的排序方法 该算法采用经典的分治 divide and conquer 策略 分治法将问题分 divide 成一些小的问题然后递归求解 而治 conquer 的阶段则将分的阶段得
  • 人工智能ai用什么编程语言_用于AI开发的6种最佳编程语言

    人工智能ai用什么编程语言 AI 人工智能 为应用程序开发人员开辟了无限的可能性 通过利用机器学习或深度学习 您可以产生更好的用户配置文件 个性化设置和推荐 或者合并更智能的搜索 语音界面或智能帮助 或以其他多种方式改进您的应用程序 您甚至
  • 南方cass显示未知命令_cass9.1安装完成后,展高程点出现:未知命令"1".按 F1 查看帮助.请问怎么回事?...

    答 再看一下你的展点文件格式对不对 用记事本打开DAT 应该是 sz01 0 598137 111 5243969 952 249 486 点名 编码 x y z 答 在保证那些显示字体不一致的所有的高程点的数字注记确实是同一种字体样式 且
  • 复旦nlp实验室 nlp-beginner 任务三:基于注意力机制的文本匹配

    任务三 基于注意力机制的文本匹配 输入两个句子判断 判断它们之间的关系 参考ESIM 可以只用LSTM 忽略Tree LSTM 用双向的注意力机制实现 参考 神经网络与深度学习 第7章 Reasoning about Entailment
  • npm install安装时MSBUILD error MSB3428 未能加载 Visual C++ 组件“VCBuild.exe”

    首先可以通过npm i node sass sass binary site https npm taobao org mirrors node sass来解决但是我还是没有解决 随后我又试了安装windows build tools 使用
  • check the manual that corresponds to your MySQL server version for the right syntax to use near

    check the manual that corresponds to your MySQL server version for the right syntax to use near WHERE 价格 11 at line 1 注意
  • 利用fairygui界面滚动组件实现滑动屏幕

    我在做一个小游戏的时候需要实现界面滑动效果 开始第一念头是用监听鼠标的滑动位置改变来做 但是fairygui有一种滚动组件就可以很方便的实现 我们需要用到滑动界面情况 通常是因为游戏的背景图片比游戏可视界面大 暂不考虑背景循环 图片加载 首
  • 开发要点-微信小程序

    微信小程序教程 基于微信平台的接触即用应用 兼有服务号的功能 同时提供类似原生的体验 以前叫应用号 适合做用完即走的应用 与用户的关系不是重依赖的关系 体验官方示例 了解小程序组件 组件 UI组件 接口 动态API 传统接口 微信开放接口
  • python3 题解(36 补齐为回文串)

    补齐为回文串 问题 回文串也中镜像串 就是左右对称的串 a aba baab 都是回文串 给定一个串 至少要添加上多少个字母 才能将它改造为回文串呢 分析 这可以通过递归的方法 不断缩小规模来实现 如果一个串的首尾两个字符相同 那么最小次数
  • 2018之后的Unity3d制作AR教程

    自2017 4以后的unity版本 AR的SDK已经被集成 那么如何用2018unity3d制作AR呢 1 首先打开Unity3d2018 然后打开File gt Building Setting 接着打开PlayerSetting 找到X
  • Linux基础IO

    基础IO 一 C语言文件操作 C语言文件接口汇总 C语言文件接口使用 二 Linux文件操作系统调用 open write read close 使用系统接口 三 文件描述 fd 文件描述符原理 文件描述符分配规则 如何理解一切皆文件 四
  • Java IO流处理 面试题汇总

    说明 本节内容来源于网络汇总 输入输出流是相对于内存而言的 1 面试题汇总 1 java中有几种类型的流 2021 08 19更新 从编码方式上 分为字符流和字节流 如上图可知 字节流继承inputStream和OutputStream 字
  • StableDiffusion入门教程

    目录 介绍 模型的后缀 ckpt模型 safetensors模型 文件夹 VAE 模型在哪下载 Hugging face

随机推荐

  • Docker-Compose一键部署

    Docker Compose一键部署 文章目录 Docker Compose一键部署 Docker 网络模式 一键部署 Docker 网络模式 关于 docker 网络模式 有时间会另出一篇博客详细介绍 或者在该博客下继续补充 docker
  • d3dcompiler_47.dll缺失怎么修复?多种解决d3dcompiler_47.dll丢失的方法分享

    在使用电脑过程中 我们有时可能会遇到各种各样的错误提示信息 其中之一就是 d3dcompiler 47 dll缺失 的问题 这个错误意味着你的计算机上缺少了一个重要的组件文件 可能导致某些程序无法正常运行 尽管对于非专业用户来说 这个问题可
  • Python开发技术—文件和异常2

    第1关 读取CSV文件1 任务描述 本关任务 编写一个能读取csv文件的程序 将指定的文件按照要求的格式输出 相关知识 为了完成本关任务 你需要掌握 1 csv模块 测试说明 平台会对你编写的代码进行测试 在你的程序的当前目录下存在一个bo
  • QGIS二次开发08:QGIS的二次封装例子

    QGIS体系过于庞大 对二次开发有一定的学习难度 同时在后续的多个项目中会有大量相同功能的应用 因此有必要进行二次封装 暴露必要的实现接口 从而简化开发的难度 一 基础封装功能 1 空间数据加载和显示 实现工程文件加载和显示 2 地图交互动
  • 【CSS】背景图定位问题适配不同机型

    需求 如图 实现一个带有飘带的渐变背景 其中头像必须显示飘带凹下去那里 需要适配不同的机型 一不下心容易错位 实现 因为飘带背景是版本迭代中更新的 所以飘带和渐变背景实则两个div 飘带切图如下 圆形部分需要契合头像
  • 20分钟,使用Amazon SageMaker快速搭建属于自己的AIGC应用

    真火 作为最近一段时间人工智能领域内的顶流之一 AIGC AI Generated Content 早已火爆出圈 频登各大互联网平台热搜 cite 微软亚洲研究院官方微博 这段时间以来 基于深度学习的内容生成在图像 视频 语音 音乐 文本等
  • 融合网络位置服务器,4G/5G定位的关键技术及异构融合一体化定位系统的网络架构...

    摘要 如何提高室内定位精度并实现室内外定位的连续无缝覆盖是定位领域急需解决的问题 针对该问题 首先介绍了4G定位的标准与技术 并分析了其特点与不足 然后 分析了面向5G的超密集组网下的定位技术 AOA TDOA定位技术以及上下行定位技术 最
  • 【python教程】之try--except异常捕获

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 异常简介 捕获异常 try except except捕获异常类型 捕获多个异常的方式 不明确错误类型的情况 try except else try except
  • 上线代码质量审查解决方案

    前言 使用自动化工具和人工审查并行方式检查程序源代码是否存在安全隐患 或者有编码不规范的地方 利用自动化代码审计工具 如CheckStyle FindBugs PMD JTest 进行代码审计 以及每周定期组织对最近开发的业务进行代码评审
  • java javaw 命令区别_java 和javaw 的区别

    javaw exe用法和java exe 相同 javaw的程序不在java console 上面显示任何东西 如果在开发程序 就用java 这样可以看到错误提示 如果是运行完成了的程序 就用javaw 可以提高一点速度 两个应用程序都能运
  • I2C总线的通讯距离

    关于I2C总线 I2C总线不适合远距离通信 尤其是使用线缆与接口器件进行通信时一般不选择 I2C 使用I2C总线都是在用一个开发板上或者距离比较近 如果是远距离通信 比如说超过2米 这个时候对硬件就有特殊的要求了 通信线缆小于0 2米 一般
  • STM32学习之以太网介绍

    以太网简介 以太网 Ethernet 是互联网技术的一种 由于它是在组网技术中占的比例最高 很多人直接把以太网理解为互联网 以太网是指遵守IEEE802 3标准组成的局域网 由IEEE 802 3标准规定的主要是位于参考模型的物理层 PHY
  • uboot命令使用学习(4)

    学习目标 uboot命令使用学习 4 EMMC和SD卡操作命令 学习内容 学习使用了正点原子的I MX6ULL教程及开发平台 1 mmc info命令 2 mmc rescan命令 3 mmc list命令 4 mmc dev命令 5 mm
  • 手撕RPC第一天

    前言 众所周知 RPC 远程服务调用 成为现代架构中不可或缺的一部分 那么 熟悉RPC的原理就显得相当重要了 在这个前提下 我开始了学习RPC之路 常见的rpc框架有轻量级的thrift 国内开源的使用众多的dubbo go实现的gRPC
  • linux cannot connect to wifi

    If you cannot connect to wifi while previously you can You may switch to a different kernel if you have an alternative o
  • Android xml属性大全

    第一类 属性值为true或false android layout centerHrizontal 水平居中 android layout centerVertical 垂直居中 android layout centerInparent
  • php:一次完整的HTTP请求过程笔记

    HTTP 事务执行过程 1 客户端 浏览器 做出请求操作 输入网址 点击链接 提交表单 2 客户端检测缓存 1 有缓存且较新 客户端直接读取本地缓存进行资源展示 2 有缓存但是不新 准备http请求包 发送至服务端进行缓存校验 3 客户端对
  • vue3 使用element plus 打包时 报错

    vue3 vite ts elementPlus中运行正常打包出错 能正常运行 但是打包出错 解决打包时出现导入element plus相关的爆红 导致无法打包的问题 如若出现类似于 Module element plus has no e
  • jenkins+ant&findbugs&fireline

    火线在jenkins上的安装 http magic 360 cn zh user html Jenkins jenkins插件离线下载的好地方 http updates jenkins ci org download plugins 在je
  • C语言运算符——自增与自减

    自增与自减 一个整数类型的变量自身加 1 可以这样写 a a 1 或者a 1 不过 C语言还支持另外一种更加简洁的写法 就是 a 或者 a 这种写法叫做自加或自增 意思很明确 就是每次自身加 1 相应的 也有a 和 a 它们叫做自减 表示自