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

c - C中的后增量和前增量运算符

为什么 k 没有递增,而 i 和 j 在同一个表达式中递增。我还想知道程序的输出是什么。我得到的输出为 -2 3 1 0

0 投票
2 回答
55 浏览

pre-increment - 预增量运算符

为什么程序的输出是 '4 4' 而不是 '3 4' ?

0 投票
1 回答
1285 浏览

c# - 为什么 ++ 运算符重载时 ++foo 和 foo++ 没有区别?

可能重复:
后增量运算符重载
为什么后缀 ++/— 在 C# 中被归类为主要运算符?

我看到我可以重载++and--运算符。通常您通过两种方式使用这些运算符。前后递增/递减一个 int 示例:

但是在运算符重载方面情况有点不同:

我的问题是为什么最后这两行输出相同的东西?更具体地说,为什么第一行(两行)输出flying


解决方案是将运算符重载更改为:

0 投票
3 回答
501 浏览

c++ - 我们可以可靠地预先增加/减少右值吗?

例如,std::vector<int>::iterator it = --(myVec.end());。这在 GCC 4.4 中有效,但我听说它不是可移植的。

0 投票
3 回答
102 浏览

c# - 意外的语言行为 i++

我尝试执行以下操作

发现i中间增加了

当我认为它最终会增加i时:

i++任何人都可以找到有关C# 工作原理的解释吗?

0 投票
3 回答
255 浏览

c - 增量运算符中的左值问题

可能重复:
谁能解释这些未定义的行为(i = i++ + ++i,i = i++ 等……)

当我编译这段代码时,我在语句 1 中得到一个 l-value Required 错误,我可以理解。即使我打算做同样的事情,语句 2 怎么不会产生错误?有人可以阐明吗?

0 投票
3 回答
4155 浏览

php - echo ++$a + $a++ 的输出应该是什么

在 PHP 手册,运算符优先级部分,有这个例子:

我了解该行为未定义,原因如下:

因为解释器可以自由地以任何顺序x + y = y + x评估x和添加,以优化速度和/或内存。在查看本文中的 C 代码示例y后,我得出了这一结论。

4我的问题是,无论表达式和子表达式的评估方式如何,上述 PHP 代码的输出都应该是:

  • op1 = ++$a => $a = 2, op1 = 2; op2 = $a++ => op2 = 2, $a = 3; 2 + 2 = 4
  • op1 = $a++ => op1 = 1, $a = 2; op2 = ++$a => op2 = 3, $a = 3; 1 + 3 = 4

5从哪里来?或者我应该更多地了解操作员的工作方式?

编辑:

我一直盯着递增/递减运算符部分,但仍然无法弄清楚为什么 5。

++$a: Pre-increment -- 将 $a 加一,然后返回 $a。
$a++: 后增量——返回 $a,然后将$a 加一。

0 投票
5 回答
3859 浏览

c - 表达式“j = ++(i | i); 和 j = ++(i & i); 应该是左值错误吗?

我期待在我的以下代码中:

表达式j = ++(i | i);并将j = ++(i & i);产生如下左值错误:

但令我惊讶的是,上面的代码编译成功了,如下:

检查上面的代码是否正常工作。

而其他运营商产生错误(据我了解)。甚至按位运算符 XOR 也会导致错误j = ++(i ^ i);(检查其他运算符在编译时产生左值错误)。

是什么原因?这是未指定还是未定义?还是按位 OR AND 运算符不同?

编译器版本:

但我相信编译器版本不应该导致不统一的行为。如果^没有编译,那么|&没有。否则应该适用于所有人

在 c99 模式下,此编译器不是错误:gcc x.c -Wall -std=c99.

0 投票
4 回答
7020 浏览

java - for循环中的前后增量

在 java 的 for 循环中进行预增量与后增量相比是否更高效?

示例代码:

我注意到,当我进行预增量时,执行时间比我进行后增量时要短。关于为什么会出现这种情况的任何建议?谢谢。

0 投票
2 回答
183 浏览

c - C代码,其中我有一个整数变量的值,在预增量操作之后我需要得到输出

请给出解释的输出?
我得到的答案是12但应该是13