问题标签 [post-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 投票
8 回答
3203 浏览

c - Post-increment in a while loop

The following code confused me a bit:

This is a stripped down implementation of strcpy function. From this code, we see that pointer p and q are incremented then dereferenced and q is assigned to p until the \0 char has been reached.

I would like someone to explain the first iteration of the while loop.

0 投票
4 回答
1687 浏览

post-increment - for循环中++i和i++的区别

我很了解后缀和前缀递增/递减的工作原理。但我的问题是,在 for 循环中,哪个更高效或更快,哪个更常用,为什么?

字首?

还是后缀?

0 投票
5 回答
204 浏览

c - 输出这个程序。困惑吗?

所以我被这个问题困住了。

根据我的说法,'a' 应该是 20。a=6+6+8-8 但是,在执行时我发现答案是 18。我做错了什么?一步一步的解释会很有帮助。

0 投票
2 回答
700 浏览

c++ - 迭代器中的 C++ 后增量运算符重载(使用 -Wall -Werror 编译)

我目前正在为 b-tree 创建自己的迭代器,并且我一直坚持如何在编译器不抱怨的情况下实现后增量运算符。

错误消息如下,并且是预期的(因为我完全按照错误消息所说的那样做)

我需要使用 -Wall 和 -Werror 标签编写函数,因此希望有人能够帮助我解决这个问题。

这是功能:

我环顾四周,我只能找到实施运营商的人的例子,这正是我目前的情况。

每当我以前遇到这样的问题时,我都会对要返回的对象进行“新”处理,这样它就不再是临时的了。但由于这是一个迭代器,如果我这样做了,之后我将无法释放内存,从而导致内存泄漏。

如果有人能够帮助我,那将不胜感激!如果我的设计还有什么可以帮助您理解问题的,请告诉我。

问候。

0 投票
18 回答
47816 浏览

java - “x = x++”之后的 x 是什么?

执行此操作时(幕后)会发生什么?

也就是说,当一个变量在一个语句中后递增并分配给它自己时?我编译并执行了这个。即使在整个语句之后x仍然是 7 。在我的书中,它说这是递增的!x

0 投票
3 回答
6580 浏览

c++ - c++中运算符重载的后增量

这是我的后增量运算符重载声明。

我的类构造函数

在主要功能中,我编写了如下代码

编译时,我收到以下错误

opover.cpp:56:5:错误:'loc loc::operator++(int)' 的原型与类'loc' opover.cpp:49:5 中的任何内容都不匹配:错误:候选者是:loc loc::operator++( ) opover.cpp:在函数'int main()'中:opover.cpp:69:4:错误:没有为后缀'++'声明'operator++(int)'</p>

0 投票
15 回答
7416 浏览

java - a = (a++) * (a++) 在 Java 中给出奇怪的结果

我正在为 OCPJP 考试而学习,所以我必须了解 Java 的每一个奇怪的细节。这包括前增量和后增量运算符应用于变量的顺序。以下代码给了我奇怪的结果:

答案不应该是11吗?或者可能是 13 岁?但不是12!

跟进:

以下代码的结果是什么?

0 投票
5 回答
6339 浏览

javascript - 增量运算符返回 NaN

我正在尝试使用++运算符增加一个变量,但我不断得到NaN结果,我不知道为什么。这是我的代码:

0 投票
3 回答
377 浏览

c - ++ 是否与指针的 += 1 相同?

我想重构我的一些旧 C 代码,我很好奇是否可以ptr++ptr += 1where ptris some 指针替换 all 而不改变任何行为。这是我的意思的一个例子,来自 K&R 第 5.3 节:

当我用 替换s++s += 1,我得到了相同的结果,但我想知道这是否适用于所有类型。我还对 s 做了一个测试int

如果我用 替换该行int_array++;int_array += 1;我会得到相同的结果。

在考虑了更多之后,我意识到如果在表达式中使用该值可能会出现问题。我只是将增量移动到另一行,这样会更安全吗:

会成为:

结论

我认为可能是一个问题,增加不同类型的指针,这不是问题。请参阅@bdonlan 的回复了解原因。

这并不意味着您可以将所有替换x++x += 1并期望相同的行为。但是,您可以安全地替换++x(x += 1),因为它们是等效的。

0 投票
6 回答
33048 浏览

c# - C# 中的前后增量

我对 C# 编译器如何处理前后递增和递减有点困惑。

当我编写以下代码时:

x之后将具有值 10。我认为这是因为预增量设置x5,这使得它5+5 评估为10。然后后增量将更新x6,但不会使用此值,因为那时10将分配给x

但是当我编码时:

然后x将在2之后。谁能解释为什么会这样?