Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;i+=1到i=i+的快捷方式;1._C++_Visual Studio 2015_Operators_Difference - Fatal编程技术网

C++ C++;i+=1到i=i+的快捷方式;1.

C++ C++;i+=1到i=i+的快捷方式;1.,c++,visual-studio-2015,operators,difference,C++,Visual Studio 2015,Operators,Difference,我在下面设置了一个程序 for (int i = 0; i <= 10; i += 1) { cout << "+= " << i << endl; } cout << endl; for (int i = 0; i <= 10; i = i + 1) { cout << "+ " << i << endl; } (inti=0;iTL:DR是的,你所有的假设基本上都是正确的 i+

我在下面设置了一个程序

for (int i = 0; i <= 10; i += 1) {
    cout << "+= " << i << endl;
}
cout << endl;
for (int i = 0; i <= 10; i = i + 1) {
    cout << "+ " << i << endl;
}

(inti=0;iTL:DR是的,你所有的假设基本上都是正确的

  • i+=1
    接受
    i
    并向其添加1

  • ++i
    也会这样做

  • i+1
    执行相同的操作,但不会再次将结果存储在
    i
    中,因此它不会有用


正如提示:
i*=2
将双倍于
i
是的,
i+=1
i=i+1
的快捷方式。但是,如果您想将
i
的值增加1,建议使用增量前操作符
++i
或增量后操作符
i++
。这些增量操作符自动执行将变量的值增加1。 示例代码:

for (int i = 0; i <= 10; ++i)
上述表达式的计算结果为

i = i + j;
类似地,其他运算符也可以与
=
符号一起使用,例如

i/=j;
计算结果为
i=i/j;

i-=j;
计算结果为
i=i-j;

i*=j;
计算结果为
i=i*j;


等等。

除了作为一种快捷方式之外,它还只对每个操作数求值一次。这在某些上下文中可能会有差异。对不起,你的问题又是什么呢?
++I
I++
增加一次。你可以“依赖于它”。
++=
可能会过载并做一些意外的事情。这对p不好当然是练习。不要猜测你可能想从a那里学习语言。有一份好的在线语言参考资料也很有帮助:引用《标准》会让这成为一个很好的答案。我试着找到一个答案,觉得应该很容易,但比我预期的要难。
I+=1
++I
相同,而不是
I++
>@M.M详细说明差异的答案,并解释差异如何影响OPs代码行为或差异如何在其他示例中可见(可能会详细说明影响差异可见性的内容)。@Yunnosch解释了
i++
++i
之间的差异“百万次"互联网上到处都是。@DanielLangr这是真的,这也是StackOverflow如此受人赞赏的原因之一,这里真正好的答案可以追溯到这一百万种解释的源头,即标准。这是假的——例如,写
i+=2;
是完全正常和正确的;没有真正的理由去预测er
++i
超过
i+=1
i = i + j;