gpt4 book ai didi

c++ - 递增++i、i++ 和 i+=1

转载 作者:太空狗 更新时间:2023-10-29 23:30:23 26 4
gpt4 key购买 nike

我是 C++ 初学者。我的理解是:-

i++是先执行后自增,++i是先自增再执行,i+=1是先自增1再执行。但是在 FOR 循环中:

for (i=0;i<10;i++)
for (i=0;i<10;++i)

上面这两个循环真的没有什么区别。

这是另一个计算从 1 到 100 的所有整数之和的方法:

int i=1, sum=0;
while (i<=100)
{
sum+=i;
i++; //i+=1; ++i;
}
cout<<sum<<" "<<i<<endl;
return 0;

但是如果我用 i+=1 或++i 替换 i++,它们都会返回 5050 和 101 的总和。所以我真的看不出它们有什么区别。

谁能给我解释一下?其中哪一个在编程中使用最多?谢谢!!

最佳答案

你是对的。在您的示例中没有区别。

但是这里有:

int i = 0;
cout << i++ << endl; //prints 0
cout << i << endl; //prints 1

对比

int i = 0;
cout << ++i << endl; //prints 1
cout << i << endl; //prints 1

Which one of those is used most in programming?

大多数时候,++ 是语句中唯一的操作(仅供引用,for 循环有三个语句)。

如果不是,那么它可能很重要,您将使用能给您正确行为的任何一个。

仅供引用

一些开发人员认为 if 前缀和后缀运算符应该始终单独使用(而不是大型语句的一部分)。它们可能导致代码困惑,甚至导致未定义的行为。

例如,

int i = 0;
cout << i++ + i++ << endl;

有未定义的行为。

关于c++ - 递增++i、i++ 和 i+=1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21447332/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com