x++、++x的一些问题

news2024/11/24 8:44:50

x++、++x在字面上无非就说一个先前置递增然后再运算,另一个是运算完再递增,是不是有些许模棱两可的感觉,接下来引用一个简单的for循环就能够大致理解:

先是x++:

	int i=0,x=0;
	for(i=0;(i++)<5;)
	{
		x+=i;
		printf("%d\n",x);
	}

这里i=0,进入for循环,会先判断(i++)是否小于5,i=0时,也即(i++)为=0,当执行完(i++)<5这条语句的判断后,才会将i++等于1。

如此,第二次,判断1<5,x为=1+2;第三次判断2<5 。 。 。第五次4<5,x=1+2+3+4+5;直至第六次5<5时,判断为False,跳出for循环。

结果是:

1
3
6
10
15

再对比一下++x:

	int i=0,x=0;
	for(i=0;(++i)<5;)
	{
		x+=i;
		printf("%d\n",x);
	}

这里第一次判断i=0,++i就为1,也即1<5,x=1;第二次i=1,2<5;第三次i=2,3<5;第四次i=3,4<5;

第五次i=4,5<5跳出循环,所以循环相比x++少执行了一次。

结果是:

1
3
6
10

接下稍微深一点的例子:

#define s(x) ((x)*(x))
int main(){
	int x=10;
	x=s(++x);
	printf("%d",x);
	return 0;
}

猜测一下,最终打印出的值会是多少。

首先来分析一下,上述代码用了一个宏定义来实现一个简单的平方函数。

实际上带入进x=s(++x)就等价于,x=((++x)*(++x)),这样你是否有头绪能够猜出最终打印的值呢。

结果是144。

是的就是144,实际上在该式子中x=((++x)*(++x)),从左到右执行了两次++x的操作,也即:

(++x)*(++x)等价于(x+2)*(x+2),也即12*12=144。

同样的进行x++的操作在执行一遍:

#define s(x) ((x)*(x))
int main(){
	int x=10;
	x=s(x++);
	printf("%d",x);
	return 0;
}

你是否能够猜出答案。

还是先分析一下代码,跟前面不同,他的等价代码的先运算后加,x=((x++)*(x++))。

这就需要按从左往右一步一步进行分析,可以用下图来描述:

所以答案是10*11=110,你猜出来了吗。

同样可以验证一下,在执行完两次x++后的值为12,可以在该代码中加上+x:

#define s(x) ((x)*(x))
int main(){
	int x=10;
	x+=s(x++);
	printf("%d",x);
	return 0;
}

结果为110+12.也即122。

以上就是++x和x++的一些我个人得出的见解,如果有缺漏或者错误,欢迎各位指出。

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

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

相关文章

影刀RPA实战:Excel排序、替换与格式

1.实战目标 今天继续介绍影刀RPA操作Excel的指令&#xff0c;内容替换&#xff0c;数据排序与单元格格式设置&#xff0c;这几个功能在日常工作中使用率还是比较频繁的。我们可以使用影刀来处理这些重复繁琐的工作。 2.内容替换 我们手动替换内容时 打开Excel文件&#xff1…

【Spring】“请求“ 之后端传参重命名,传递数组、集合,@PathVariable,@RequestPart

1. 后端传参重命名&#xff08;后端参数映射&#xff09; 某些特殊情况下&#xff0c;前端传递的参数 key 和我们后端接收的 key 可以不一致&#xff0c;比如前端传了一个 time 给后端&#xff0c;而后端是使用 createtime 字段来接收的&#xff0c;这样就会出现参数接收不到的…

第二十二天|回溯算法| 理论基础,77. 组合(剪枝),216. 组合总和III,17. 电话号码的字母组合

回溯算法理论基础 1.题目分类 2.理论基础 什么是回溯算法 回溯和递归是相辅相成的。 回溯法也可以叫做回溯搜索法&#xff0c;它是一种搜索的方式。 回溯法的效率 回溯法其实就是暴力查找&#xff0c;并不是什么高效的算法。 因为回溯的本质是穷举&#xff0c;穷举所有可…

销冠的至高艺术:让自己不像销售

若想在销售领域脱颖而出&#xff0c;首先是让自己超越传统销售的框架&#xff0c;成为客户心中不可多得的行业顾问与信赖源泉。这不仅是身份的蜕变&#xff0c;更是影响力与信任度质的飞跃。 销冠对客户只吸引不骚扰&#xff0c;不讲自己卖什么&#xff0c;只讲自己能解决什么…

销售秘籍:故事+观点+结论

在销售的浩瀚宇宙中&#xff0c;隐藏着一个不朽的秘诀——利用人类共有的“错失恐惧”&#xff0c;激发客户内心的渴望与行动。正如村上春树所言&#xff0c;每个故事都深深植根于灵魂&#xff0c;而大仲马则揭示&#xff0c;灵魂之眼所见&#xff0c;比肉眼更为长久铭记。 错…

【C++】入门基础介绍(下)输入输出,函数重载,缺省与引用

文章目录 7. C输入与输出8. 缺省参数9. 函数重载10. 引用10. 1 引用的概念10. 2 引用的特性10. 3 引用的使用10. 4 const引用10. 5 指针和引用的关系 11. inline12. nullptr 7. C输入与输出 iostream是 Input Output Stream 的缩写&#xff0c;是标准输入、输出流库&#xff0…

k8s 中存储之 PV 持久卷 与 PVC 持久卷申请

目录 1 PV 与 PVC 介绍 1.1 PersistentVolume&#xff08;持久卷&#xff0c;简称PV&#xff09; 1.2 PersistentVolumeClaim&#xff08;持久卷声明&#xff0c;简称PVC&#xff09; 1.3 使用了PV和PVC之后&#xff0c;工作可以得到进一步的细分&#xff1a; 2 持久卷实验配置…

什么是安全运营中心 SOC?

SOC 代表安全运营中心&#xff0c;它是任何企业中负责组织安全、保护企业免受网络风险的单一、集中的团队或职能。 安全运营中心将管理和控制业务运营的所有安全要素&#xff0c;从监控资产到雇用合适的人员和流程&#xff0c;再到检测和应对威胁。 在本文中&#xff0c;我们…

sqli-labs less-14post报错注入updatexml

post提交报错注入 闭合方式及注入点 利用hackbar进行注入&#xff0c;构造post语句 unameaaa"passwdbbb&SubmitSubmit 页面报错&#xff0c;根据分析&#xff0c;闭合方式". 确定列数 构造 unameaaa" or 11 # &passwdbbb&SubmitSubmit 确定存在注…

【Blender Python】7.一些运算、三角函数以及随机

概述 要用Blender进行程序生成&#xff0c;数学计算是少不了的&#xff0c;Python支持一些常规的表达式计算&#xff0c;而另外一些相关的数学函数则在math模块中。 一些基础的运算 取余、除法、整除 >>> 21 % 4 1>>> 21 / 4 5.25>>> 21 // 4 5…

视频画面提取保存为图片:简易方法与实用工具

如果需要在视频里随机截取某一帧作为照片来保存或分享&#xff0c;如何快速剪辑多个视频&#xff1f;幸运的是&#xff0c;如今有多种简易的方法和实用的工具可以帮助我们轻松实现这一目标。 1打开“媒体梦工厂”用到“视频封面”功能&#xff0c; 2在此功能里切换到“抽帧/提取…

通过实时可视性转变云安全

Upwind首席执行官 Amiram Shachar 讨论了混合和多云环境中云安全的复杂性。 他概述了深入了解配置和实时洞察的必要性&#xff0c;以实现敏捷性和安全性之间的平衡。 还分享了解决错误配置和确保合规性的策略&#xff0c;建议在云部署中采取主动的风险管理方法。 随着混合云…

毕设 大数据电影数据分析与可视化系统(源码+论文)

文章目录 0 前言1 项目运行效果2 设计概要3 最后 0 前言 &#x1f525;这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师…

Bluetooth Channel Sounding中关于CS Event Subevent的详细介绍

BLE CS Event & Subevent定义&#xff1a; BLE CS Event事件定义为&#xff1a;CS 事件被定义为从同一个 LE piconet 物理通道连接事件锚点具有相同偏移Offset的所有 CS Subevent子事件组&#xff0c;如图 1所示&#xff0c;具体参考Vol 1, Part A 3.3.2.5.2 Characteristi…

自动驾驶系统研发系列—如何选择适合自动驾驶的激光雷达?从基础到高端全解读

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

CSS圆角

在制作网页的过程中&#xff0c;有时我们可能需要实现圆角的效果&#xff0c;以前的做法是通过切图&#xff08;将设计稿切成便于制作成页面的图片&#xff09;&#xff0c;使用多个背景图像来实现圆角。在 CSS3 出现之后就不需要这么麻烦了&#xff0c;CSS3 中提供了一系列属性…

阿里云APP创建

首先进入阿里云生活物联网平台 阿里云生活物联网平台 创建新项目 然后创建新产品 完成后进入功能定义区 已经定义号插座电源开关&#xff0c;直接下一步 注意保留三元组信息 进入设备调试 没有模组&#xff0c;直接下一步 人机交互界面 最后测试 激活码&…

十大时间序列预测模型

目录 1. 自回归模型 原理 核心公式 推导过程: 完整案例 2. 移动平均模型 原理 核心公式 推导过程: 完整案例 3. 自回归移动平均模型 原理 核心公式 推导过程: 完整案例 4. 自回归积分移动平均模型 原理 核心公式 推导过程 完整案例 5. 季节性自回归积分…

Axios 快速入门

什么是Ajax Ajax 是一种通过 JavaScript 发送异步请求的技术&#xff0c;它的核心是使用 XMLHttpRequest 对象来与服务器交换数据。这种方式较为繁琐&#xff0c;因为需要手动处理请求状态和响应&#xff0c;并且编写的代码往往比较冗长。 相较之下&#xff0c;Axios 是一个基于…

其他:Python语言绘图合集

文章目录 介绍注意导入数据函数模块画图 介绍 python语言的科研绘图合集 注意 This dataset includes the following (All files are preceded by "Marle_et_al_Nature_AirborneFraction_"):- "Datasheet.xlsx": Excel dataset containing all annual a…