问题标签 [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.
c - C 程序中预增量运算符的行为
我正在运行以下 C 代码:
我期待结果为
但它给出了不同的结果。我想我对预处理器有误解。我认为代码将类似于
如果我错了,请纠正我。
我将结果解释为 3*4*5=60
但它即将到来 125
php - PHP 中的预增量,定义了魔术 get 和 set
我有一个问题一直在破坏我想做的事情的方式很长一段时间。它与在 PHP 中使用魔法 get 和 set 以及尝试对对象进行预增量有关。我有一个 PHP 类,如下所示:
注意方法&
中的__get
。现在我运行这段代码:
输出是:
第三个和第四个测试有一个意想不到的(我)行为。看起来 $this->object['bar'] 返回要设置的值,而不是我预期的旧值。为什么在实际设置之前就已经设置了值?
如果我&
从__get
方法中删除 ,这将起作用,所以我想这与 PHP 所做的引用管理有关。但我希望第三个测试的行为与第二个相同,但事实并非如此。
我真的不明白这个。任何帮助将非常感激。
c - C 中布尔表达式的结果
为什么以下表达式的计算结果为 0?
假设 i = 5。从左到右计算表达式,我们计算左操作数 (i) 得到 5,我们计算右操作数 (--i) 得到 4。所以表达式 about 应该计算为 1。但是当我用 gcc 编译并运行它,它总是评估为 0。我的思维过程是否存在缺陷?
c - C中的后增量和前增量
我对这两个 C 语句有疑问:
x = y++;
t = *ptr++;
使用语句 1,y 的初始值被复制到 x 中,然后 y 递增。
在语句 2 中,我们查看 *ptr 指向的值,将其放入变量 t 中,然后再增加 ptr。
对于语句 1,后缀自增运算符的优先级高于赋值运算符。那么不应该先增加y,然后将x分配给y的增加值吗?
在这些情况下,我不了解运算符的优先级。
java - C++ 和 Java 之间的表达式求值顺序有何不同?
试图理解此页面上的示例使我的大脑皱巴巴: http ://answers.yahoo.com/question/index?qid=20091103170907AAxXYG9
更具体地说,这段代码:
给出输出:566
现在,如果表达式从右到左求值,这对我来说是有意义的,但是在 Java 中是一个类似的表达式:
给出的输出:456
哪个更直观,因为这表明它是从左到右评估的。在各个站点上对此进行了研究,似乎对于 C++,编译器之间的行为有所不同,但我仍然不相信我理解。Java 和 C++ 之间的这种评估差异的解释是什么?谢谢。
java - SCJP 程序给出输出 8 2 怎么样?
我尝试了这段 scjp 代码,我得到了输出 5 3 谁能告诉我哪里出错了
java - 赋值给变量没有效果?
当我这样做时:count = ++count; 为什么我会收到警告 - 分配给变量 count 无效?这意味着计数增加,然后分配给它自己或其他东西?它和 ++count 一样吗?count = count++ 会发生什么;? 为什么我没有收到警告?
c++ - 你可以在c中的同一个语句中对同一个变量有一个增量器和一个减量器吗
是
C 中的有效语句?(它会编译/运行)这有什么实际应用吗?
很抱歉在编辑中更改了问题,但我发现了一些东西。
根据我的 C++ 编译器(Visual Studio 2010):
是一个有效的命令,但
不是。这有什么原因吗?
java - 为什么 java 语句评估会像这样发生?
输出将是:
我不明白为什么,请向我解释一下。
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++ 这样进行任何替换。
任何帮助表示赞赏。