问题标签 [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++ - 实现 C++ 后缀增量运算符
我编译了以下示例:
从cplusplus.com/reference我得到编译器警告:
这里有什么问题?后缀签名是否应该是myiterator operator++(int)
按值返回?
是否在某个地方定义了 STL 迭代器上的后缀签名应该是什么样的?
c++ - 后增量和前增量概念?
我不明白后缀和前缀递增或递减的概念。谁能给出更好的解释?
c++ - 后缀增量是否对返回值执行增量?
又是一个愚蠢的问题。
尽管我期望为 0,但由于该程序,我得到1
了打印:首先创建了一个等于 0 的临时对象,然后 i 递增,然后返回临时对象并将其分配给 i。只是根据:
5.2.6 递增和递减[expr.post.incr] 1 应用后缀++得到的值是操作数在应用运算符之前的值。[注:得到的值是原值的副本]
我在 MS VC 2008 和 GCC 下检查了它。它们给出了相同的结果,尽管至少 gcc 在增量字符串中发出警告。我哪里错了?
c - 关于序列点的后增量
后自增运算符何时影响自增?我遇到了两种意见:
1)来自http://gd.tuwien.ac.at/languages/c/programming-bbrown/c_015.htm:
POST 表示在任何赋值操作之后执行操作。
2)更近一点,关于 SO(尽管是 C++)的答案说:
...延迟增量直到表达式结束(下一个序列点)。
后增量操作也是如此...
A)等到一个序列点到达或
B)发生赋值运算符或
C)发生在序列点之前的任何时间?
c++ - 运算符优先级.. () 和 ++
礼炮..
我有一个不寻常的问题。 在 MSDN 库的这个表中,我们可以看到()的优先级高于++ (Pre-increment)。但是当我运行这段代码时,似乎++(prefex)的优先级更高:
答案是:
x=6
这仅发生在 prefex ++ 中,并且可以按照我对post-increment 的预期工作。
有什么理由吗?问候..
x=4
(我使用 Microsoft Visual C++ 2010 express)
c - a[j++] = ++i 的等效表达式,不使用前置或后置自增运算符
所以我在思考这个问题(这是一个家庭作业/考试复习问题):
a[j++] = ++i;
在不使用前/后自增运算符的情况下写下等价的表达式。如果无法提供这样的表达,请解释原因。
我能够想出以下内容:
a[j] = i+=1;
j+=1;
我想不出一种方法来增加 a[] 中的 j 作为后增量,而不是在j+=1;
之后使用,我相信这会导致无法提供这样的表达式的答案(因为它的两行代码而不是一行)和只是解释一下,如果没有后增量运算符,您就不能后增量。
我错过了什么还是我正确?我只是想仔细检查一下。提前致谢。
编辑:感谢@James McNellis,他提供了一种使用方法
a[(j+=1)-1] = (i+=1);
c - 当取消引用和后递增指向函数指针的指针时,首先会发生什么?
鉴于此代码:
函数调用发生在增量之前还是之后?
即:这会打印“Foo Foo Foo ...”还是“Foo Bar”?
c++ - switch 语句和增量运算符
我写了以下代码:
代码的输出是这样的:
谁能解释一下输出的第一行?为什么 0 和 1 都被打印?
c++ - C/C++ 后增量超过一
我正在从缓冲区读取字节。但有时我正在阅读的是一个单词或更长的内容。
这很好,但我怎样才能将位置增加 2 或 4?我无法让+=
操作员进行后增量,是吗?
原因是,我想要评估这个可怕的大表达式,同时增加位置变量。
我想我想出了自己的解决方案。我很确定它有效。但是每个人都会讨厌它,因为这不是可读的代码。
在对其进行一些测试以确保它做正确的事情后,我将把它变成一个宏。
综上所述:
不要这样做。这只是一个坏主意,因为这是生成无法维护的代码的那种事情。但是......事实证明,将任何预递增运算符转换为后递增运算符确实非常容易。
java - Java: Prefix/postfix of increment/decrement operators?
From the program below or here, why does the last call to System.out.println(i)
print the value 7
?