打印
[其他]

i++和++i有什么区别?

[复制链接]
214|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
powerantone|  楼主 | 2025-3-27 16:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们知道++是自增运算符。自增运算符有两种形式:前缀形式(++i)和后缀形式(i++)。他们有一个共同的效果,一个完整的语句执行完之后,i都是自增1的。但它们也存在区别。

你先看看下面程序的打印结果是什么?

#include<studio.h>

int main(void)
{
   int i = 5;

   int a = ++i;
   int b = i++;

   printf("d% d% d%\n", a,  b,  i++);

   return 0;
}

往下翻,查看答案。
































答案是:6,  6, 7。

简单来说:

前缀形式的自增运算符表达式++i的值是i+1;你可以这么记:自增符号在前面,那需要先自增,(这里的先是相对于赋值给a的操作来说的)然后再把自增后的值赋给表达式,所以i先自增变成i+1了,表达式的值也是i+1。

后缀形式的自增运算符表达式i++的值是i;你可以这么记:++在i的后面,所以后计算自增,先把i的值赋给表达式,所以表达式的值是i。

看完之后,你明白i++和++i的区别了吗?

自减运算符和自增运算符类似:
表达式i--的值是i;
表达式--i的值是i-1

使用特权

评论回复
沙发
huahuagg| | 2025-3-27 17:52 | 只看该作者
i++;此时此刻是i
++i;此时此刻是i+1
他们下一刻都是i+1

使用特权

评论回复
板凳
shenxiaolin| | 2025-3-28 20:47 | 只看该作者
执行先后顺序

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

601

主题

3098

帖子

4

粉丝