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

c - C 程序中预增量运算符的行为

我正在运行以下 C 代码:

我期待结果为

但它给出了不同的结果。我想我对预处理器有误解。我认为代码将类似于

如果我错了,请纠正我。

我将结果解释为 3*4*5=60
但它即将到来 125

0 投票
1 回答
670 浏览

php - PHP 中的预增量,定义了魔术 get 和 set

我有一个问题一直在破坏我想做的事情的方式很长一段时间。它与在 PHP 中使用魔法 get 和 set 以及尝试对对象进行预增量有关。我有一个 PHP 类,如下所示:

注意方法&中的__get。现在我运行这段代码:

输出是:

第三个和第四个测试有一个意想不到的(我)行为。看起来 $this->object['bar'] 返回要设置的值,而不是我预期的旧值。为什么在实际设置之前就已经设置了值?

如果我&__get方法中删除 ,这将起作用,所以我想这与 PHP 所做的引用管理有关。但我希望第三个测试的行为与第二个相同,但事实并非如此。

我真的不明白这个。任何帮助将非常感激。

0 投票
1 回答
208 浏览

c - C 中布尔表达式的结果

为什么以下表达式的计算结果为 0?

假设 i = 5。从左到右计算表达式,我们计算左操作数 (i) 得到 5,我们计算右操作数 (--i) 得到 4。所以表达式 about 应该计算为 1。但是当我用 gcc 编译并运行它,它总是评估为 0。我的思维过程是否存在缺陷?

0 投票
3 回答
7640 浏览

c - C中的后增量和前增量

我对这两个 C 语句有疑问:

  1. x = y++;

  2. t = *ptr++;

使用语句 1,y 的初始值被复制到 x 中,然后 y 递增。

在语句 2 中,我们查看 *ptr 指向的值,将其放入变量 t 中,然后再增加 ptr。

对于语句 1,后缀自增运算符的优先级高于赋值运算符。那么不应该先增加y,然后将x分配给y的增加值吗?

在这些情况下,我不了解运算符的优先级。

0 投票
3 回答
673 浏览

java - C++ 和 Java 之间的表达式求值顺序有何不同?

试图理解此页面上的示例使我的大脑皱巴巴: http ://answers.yahoo.com/question/index?qid=20091103170907AAxXYG9

更具体地说,这段代码:

给出输出:566

现在,如果表达式从右到左求值,这对我来说是有意义的,但是在 Java 中是一个类似的表达式:

给出的输出:456

哪个更直观,因为这表明它是从左到右评估的。在各个站点上对此进行了研究,似乎对于 C++,编译器之间的行为有所不同,但我仍然不相信我理解。Java 和 C++ 之间的这种评估差异的解释是什么?谢谢。

0 投票
1 回答
585 浏览

java - SCJP 程序给出输出 8 2 怎么样?

我尝试了这段 scjp 代码,我得到了输出 5 3 谁能告诉我哪里出错了

0 投票
4 回答
7975 浏览

java - 赋值给变量没有效果?

当我这样做时:count = ++count; 为什么我会收到警告 - 分配给变量 count 无效?这意味着计数增加,然后分配给它自己或其他东西?它和 ++count 一样吗?count = count++ 会发生什么;? 为什么我没有收到警告?

0 投票
2 回答
485 浏览

c++ - 你可以在c中的同一个语句中对同一个变量有一个增​​量器和一个减量器吗

C 中的有效语句?(它会编译/运行)这有什么实际应用吗?

很抱歉在编辑中更改了问题,但我发现了一些东西。

根据我的 C++ 编译器(Visual Studio 2010):

是一个有效的命令,但

不是。这有什么原因吗?

0 投票
6 回答
746 浏览

java - 为什么 java 语句评估会像这样发生?

输出将是:

我不明白为什么,请向我解释一下。

0 投票
4 回答
406 浏览

java - a=3 和 b=4 如何?

我发现了一个有趣的编程问题:

执行此程序后 a,b,c,f 的值是多少?

我以为价值观

a=2 , b=2 , c=2 和 f=2 但是

当我执行这个程序时,我得到 a = 3、b = 4、c = 2 和 f = 2。

我明白 c 和 f 是如何得到它的值 2 的,但是 a=3 和 b=4 是怎么来的。

(根据语法 ++a 和 a++ 不同,因为 ++a 更新值然后使用它,而 a++ 使用值然后更新它)

谁能解释 a 和 b 如何将其值设为 3 和 4。

更新:

嘿,我的疑问是:在 i++ 中,初始值为 0 而不是 1。但是 case 4 => a=3

它应该是 a=2 并且如果在案例 5 中有任何“a”更新(这是不正确的),则应该增加该值,因为我没有像 a=a++ 这样进行任何替换。

任何帮助表示赞赏。