i++与++i是什么意思?
自增(++),自减(--)运算符
谭浩强的书是这样描述的:
自增(++)自减(--)运算符的作用是使变量的值加1或者减1,例如:
++i,--i(在使用i之前,先使i的值加(减)1)
i++,--i(在使用i之后,使i的值加(减)1)
粗略的看,++i和i++的作用相当于i=i+1。但++i和i++的不同之处在于:++i是先执行i=i+1,再使用i的值;而i++是先使用i的值,再执行i=i+1。如果i的原值等于3,请分析下面的赋值语句。
①j=++i;(i的值先变为4,再赋值给j,j的值为4)
②j=i++;(现将i的值3赋给j,j的值为3,然后i变为4)
又例如
i=3
printf(“%d”,++i);
输入为4,若改为
printf(“%d”,i++)
则输出为3。
自增自减运算符常用于循环语句中,使循环变量自动加1;也用于指针变量,使指针指向下一个地址。
有些专业人士在使用++和--时喜欢运用一些技巧,但是往往会出现一些意想不到的结果,例如i+++j,是理解为(i++)+j还是i+(++j)呢?程序应当清晰易读,不容易引起歧义。建议谨慎使用++与--运算符,只运用最简单的形式i++与i--。而且把他们作为单独的表达式,而不要在一个复杂的表达式中使用++与--运算符
总结:
i++ 即后加加,原理是:先自增,然后返回自增之前的值
++i 即前加加,原理是:先自增,然后返回自增之后的值
(都是先自增,然后反回值)
一个变量也是表达式,多个表达式的加减法运算都是从左到右进行的
真实编程中,我们不会写这些复杂的i++代码,但是在考试,笔试中可能有关于i++的用法不同判断
下面举一个例子:
#include <stdio.h>
int main() {
int n=9,a;
while (n>6) {
a=n--;
printf("%d\t",n);
printf("%d\n",a);
}
return 0;
}
我们发现n--后,n先减1,然后返回自增之前的值。
这时自增前的值就赋给a
再举个例子:
#include <stdio.h>
int main() {
int n=9;
while (n>6) {
printf("%d\n",n--);
}
printf("\n");
int m=9;
while (m>6) {
printf("%d\n",--m);
}
}
有什么不足的地方欢迎各位大佬指正
操作系统:Windows10
软件:Devc++
编译器:TDM-GCC 4.9.2 64-bit Release
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)