《C和指针》笔记18:前缀++ 和后缀++

news/2024/11/28 17:48:01/

C 语言里有前缀++ 和后缀++,使用还是有点不同的。对应的还有--操作符,但它们的工作原理与此相同,只是它所执行的是减值操作而不是增值操作。我们只要掌握++的原理,--的原理也就知道了。

在这里我们把符号++叫做操作符,把它操作的变量或者表达式叫做操作数。

前缀++

前缀形式的++操作符出现在操作数的前面。我们看下面的代码

int a = 10, b;
b = ++a;

操作数a的值被增加,而表达式(++a)的值就是操作数增加后的值。所以经过处理以后上面的a的值变为11,b的值被表达式赋值也为11(表达式的值也为11)。

后缀++

后缀形式的++操作符出现在操作数的后面。

int a = 10, b;
b = a++;

操作数a的值仍被增加,但表达式(++a)的值是操作数增加前的值。

进一步的说明

  1. 前缀和后缀形式的增值操作符本质是复制一份变量值的拷贝(在上面的例子变量是a)。
  2. 用于赋值操作的值(表达式的值)正是这份拷贝。
  3. 前缀操作符(这里是++a
    增加变量a的值(10变为11)→拷贝变量a(11)并赋值给b
    后缀操作符(这里是a++
    拷贝变量a(10)并赋值给b→增加变量a的值(10变为11)
  4. 所以操作符最后作用的结果不是被它们所修改的变量,而是变量值的拷贝,认识这一点非常重要。它解释了为什么不能像下面这样使用这些操作符:
++a = 10;

这是因为++a的结果是a值的拷贝,并不是变量本身,无法向一个值进行赋值。

总结:

  • 前缀++:操作符在操作数之前,在变量值被使用之前增加它的值;
  • 后缀++:操作符在操作数之后,在变量值被使用之后增加它的值。

参考

  1. 《C和指针》

http://www.ppmy.cn/news/1078731.html

相关文章

Docker consul 容器服务自动发现和更新

目录 一、什么是服务注册与发现 二、Docker-consul集群 1.Docker-consul consul提供的一些关键特性 2.registrator 3.Consul-template 三、Docker-consul实现过程 以配置nginx负载均衡为例 先配置consul-agent ,有两种模式server和client 四、Docker-cons…

百万级并发IM即时消息系统(2)

1.用户model type UserBasic struct {gorm.ModelName stringPassWord stringPhone string valid:"matches(^1[3-9]{1}\\d{9}$)"Email string valid:"email"Avatar string //头像Identity stringClientIp s…

文心一言接入Promptulate,开发复杂LLM应用程序

简介 最近在尝试将文心一言的LLM能力接入Promptulate,故写了一篇博客记录一下,Promptulate 是 Promptulate AI 旗下的大语言模型自动化与应用开发框架,旨在帮助开发者通过更小的成本构建行业级的大模型应用,其包含了LLM领域应用层…

Python中 re.compile 函数的使用

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 以下介绍在python的re模块中怎样应用正则表达式 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ python源码、视频教程、插件安装教程、资料我都准备…

AI助乡行——点燃乡村振兴新引擎

随着数字化浪潮的袭来,乡村振兴战略的推进离不开数字化、智慧化等现代化治理能力和方式,人工智能等高新技术正不断与农村经济、社会、治理等加速融合。在智慧农业的背景下,我们可以解决一系列困扰农民的问题,包括如何增加经济作物…

游戏服务器成DDoS最大攻击重灾区

游戏产业的迅猛发展也让游戏产业成为被黑客攻击的重灾区。什么原因让游戏行业成为DDoS的攻击重点。总结有如下原因和主要手段: 1.游戏行业的攻击成本较低,攻防成本1:N。随着DDoS攻击的打法越来越复杂,攻击点更是越来越多&#xff…

Effective STL 1.仔细选择你的容器

Effective STL 1.仔细选择你的容器 文章目录 Effective STL 1.仔细选择你的容器迭代器容器分类连续内存容器和基于节点的容器的区别 如何选择容器结语>>>>> 欢迎关注公众号【三戒纪元】 <<<<< 标准序列容器 vector、string、deque 和 list 标准…

【LeetCode每日一题】——1365.有多少小于当前数字的数字

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 排序 二【题目难度】 简单 三【题目编号】 1365.有多少小于当前数字的数字 四【题目描述】 …