问题标签 [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.
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.
post-increment - for循环中++i和i++的区别
我很了解后缀和前缀递增/递减的工作原理。但我的问题是,在 for 循环中,哪个更高效或更快,哪个更常用,为什么?
字首?
还是后缀?
c - 输出这个程序。困惑吗?
所以我被这个问题困住了。
根据我的说法,'a' 应该是 20。a=6+6+8-8 但是,在执行时我发现答案是 18。我做错了什么?一步一步的解释会很有帮助。
c++ - 迭代器中的 C++ 后增量运算符重载(使用 -Wall -Werror 编译)
我目前正在为 b-tree 创建自己的迭代器,并且我一直坚持如何在编译器不抱怨的情况下实现后增量运算符。
错误消息如下,并且是预期的(因为我完全按照错误消息所说的那样做)
我需要使用 -Wall 和 -Werror 标签编写函数,因此希望有人能够帮助我解决这个问题。
这是功能:
我环顾四周,我只能找到实施运营商的人的例子,这正是我目前的情况。
每当我以前遇到这样的问题时,我都会对要返回的对象进行“新”处理,这样它就不再是临时的了。但由于这是一个迭代器,如果我这样做了,之后我将无法释放内存,从而导致内存泄漏。
如果有人能够帮助我,那将不胜感激!如果我的设计还有什么可以帮助您理解问题的,请告诉我。
问候。
java - “x = x++”之后的 x 是什么?
执行此操作时(幕后)会发生什么?
也就是说,当一个变量在一个语句中后递增并分配给它自己时?我编译并执行了这个。即使在整个语句之后x
仍然是 7 。在我的书中,它说这是递增的!x
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>
java - a = (a++) * (a++) 在 Java 中给出奇怪的结果
我正在为 OCPJP 考试而学习,所以我必须了解 Java 的每一个奇怪的细节。这包括前增量和后增量运算符应用于变量的顺序。以下代码给了我奇怪的结果:
答案不应该是11吗?或者可能是 13 岁?但不是12!
跟进:
以下代码的结果是什么?
javascript - 增量运算符返回 NaN
我正在尝试使用++
运算符增加一个变量,但我不断得到NaN
结果,我不知道为什么。这是我的代码:
c - ++ 是否与指针的 += 1 相同?
我想重构我的一些旧 C 代码,我很好奇是否可以ptr++
用ptr += 1
where ptr
is some 指针替换 all 而不改变任何行为。这是我的意思的一个例子,来自 K&R 第 5.3 节:
当我用 替换s++
时s += 1
,我得到了相同的结果,但我想知道这是否适用于所有类型。我还对 s 做了一个测试int
:
如果我用 替换该行int_array++;
,int_array += 1;
我会得到相同的结果。
在考虑了更多之后,我意识到如果在表达式中使用该值可能会出现问题。我只是将增量移动到另一行,这样会更安全吗:
会成为:
结论
我认为可能是一个问题,增加不同类型的指针,这不是问题。请参阅@bdonlan 的回复了解原因。
这并不意味着您可以将所有替换x++
为x += 1
并期望相同的行为。但是,您可以安全地替换++x
为(x += 1)
,因为它们是等效的。
c# - C# 中的前后增量
我对 C# 编译器如何处理前后递增和递减有点困惑。
当我编写以下代码时:
x
之后将具有值 10。我认为这是因为预增量设置x
为5
,这使得它5+5
评估为10
。然后后增量将更新x
为6
,但不会使用此值,因为那时10
将分配给x
。
但是当我编码时:
然后x
将在2
之后。谁能解释为什么会这样?