问题标签 [pre-increment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
746 浏览

java - C 和 Java 中 PreIncrement 和 PostIncrement 运算符的行为

我在 Visual C++ 和 Java 中运行以下程序:

视觉 C++

输出:

爪哇:

输出:

为什么这两种语言的输出不同?两种语言如何以不同的方式处理前置和后置运算符?

0 投票
1 回答
293 浏览

c++ - 为什么与 map.begin() 一起使用时迭代器会预先递增?

http://www.cplusplus.com/reference/map/map/begin/的示例中

为什么它在 for 循环中预先增加了迭代器?

0 投票
3 回答
1976 浏览

java - C和JAVA中增量-减量运算符的区别

请考虑以下声明:

根据我的逻辑,n 应该是 10。但是我在 c 中得到不同的输出(输出为 7)但是在 java 中我得到的预期结果是 10。在 c 中递增和递减运算符的工作方式有什么不同吗和爪哇。

这是我的确切 c 和 java 代码:

带输出的 Java 代码:10

0 投票
2 回答
715 浏览

c - 在 C 中的函数调用中使用预增量是否错误?

我在 Stack Overflow 上读到,在函数调用中使用后增量运算符会带来问题,但是在函数调用中使用前增量也是错误的吗?

请帮忙。

0 投票
1 回答
301 浏览

java - Java嵌套for循环通过第一个for循环增加第二个循环?

嗨,我正在学习 Java,并找到了一个非常简洁的解决方案,但我对第二个 for 循环中的特定代码行感兴趣。我不知道该问谁,因为我还没有在学校学习 Java,所以我在这里问,但无论如何:

这是否意味着将“重复i此次数”添加到“h负 1”?更具体地说是什么(-h)?是前置增量吗?为什么它在括号中?

它再次用于声明变量x

0 投票
1 回答
1365 浏览

c - 增量、减量、printf() 中的任务,为什么在 C 中以这种方式评估这些

我很清楚这些输出是如何产生的,因为我花了近 3 个小时盯着它看,但我想详细了解的是为什么以这种方式进行或评估它。

  1. 这是一个棘手的判断 printf 从右到左求值,所以首先 --a 推 2 ,然后 a-- 再次推 2 ,因为它是发布的,然后 a 变成 1 ,然后 --a 先是 a 0 然后把它推到 and我只是猜测输出将是 0 2 2 但令我惊讶的是它是 0 2 0 然后我得到 a=0 的最终值被赋予了我使用 pre increment 和 decrement 的所有地方。为什么会这样?

  2. 这我把它作为正常的评估,然后打印 a 是 4 然后在 a-- 再次将 a 作为 4 并再次在 --aa 中作为 3 所以 4+4-3=5 完成然后 a 的最终值发生从中间完成的后减量中成为一个 -1 所以 a 再次变为 2 为什么会发生这种情况?

  3. 此执行与上面相同,需要 4 * 4 * 3 = 48,最终 a 值为 2。

  4. 这并不棘手,但我想详细回答我想的是,首先 i 在 ++i 中变为 4,在 i++ 处 i 变为 4,然后在 ++ii 处变为 5,然后 4*4*5 = 80在这种情况下,我将其存储在 i 本身中,然后 i 变为 80,然后为后增量加 1。因此,当我将 80 存储在另一个变量 j 中然后看到它是 80 并且最终 i 值为 6 时,我可以做出一个明确的决定。

因此,从逻辑上讲,我从所有这些情况下仅打印和查看内容来判断,还有更多完全基于此的内容,我可以继续发布,所以我想要的是在组装层面它是如何发生的以及为什么要发布增量作为一个单独的状态或某事如何可以针对每个我无法继续打印的不同程序进行一般判断,并且找到模式可以有人在这里详细帮助我。最糟糕的是,我只是在 ideone 中执行了代码,并给了我完全不同的输出,如果你有兴趣,你甚至可以在 ideone 进行测试,所以为什么会发生这种情况,请有人告诉我,我在这件事上花了 3 个小时来帮助我专业人士。我使用 gcc 编译器。

0 投票
1 回答
1193 浏览

c++ - 后缀和前缀自增运算符如何在表达式中求值?

当我在 Visual Studio 上运行这个程序时,输出是 7 8 5。

我认为它取决于编译器。(如果我错了,请纠正我)但它不应该是 7 7 5 还是 5 7 7 ?

0 投票
1 回答
71 浏览

arrays - bash:意外的数组成员句柄

我在最后一个命令行中发现以下 bash 行为很奇怪。对我来说,这完全出乎意料。

似乎 bash 预先增加了 'i' 变量。

类似的奇怪行为:

有谁可以告诉我这种行为?

提前感谢

0 投票
1 回答
5334 浏览

java - 前增量与后增量 - 循环速度

我从来没有看过教程或讲座,它显示了一个没有后增量顺序的经典 for 循环。

如果您使用 POST-increment,变量“i”将被缓存,然后才会递增!但这没有任何意义,因为命令直接结束。

在我看来,这更有意义:

如果你直到现在还不明白,我会走得更远(对不起我的英语):

在第一个循环中:

  1. 缓存 i 的实际值。(注意:之间没有移动,所以没有理由这样做)
  2. 增量 i
  3. 前进

在第二个循环中:

  1. 直接增加 i
  2. 前进。

所以第二个循环在没有质量损失的情况下性能更高。还有其他意见吗?

0 投票
1 回答
176 浏览

c++ - 预增量没有按我的预期工作

我正在尝试通过在线解决一些问题来学习动态编程。我遇到的一个问题需要处理以下输入

4 10 3 4 4 5 6 7 5 7

第一个指向项目数量,第二个是总容量,其余四个(成对)现在应该指向价值和容量。

我遇到的问题是解析它的代码。

当我运行这个程序时,我得到了这个输入的错误输出

但是,如果我取消注释该行并注释较早的行以进行插入,我会得到预期的

我知道这一定是一些基本错误。提前致谢,