标签: pre-increment

为什么i = i + 1比i ++快?

在Flash中测试此代码:

var i:int = 0;
for (var j:int = 0; j < 5000000; j++)
{
    i=i+1;
}// use about 300ms.

i = 0;
for (var j:int = 0; j < 5000000; j++)
{
    i++;
}// use about 400ms

i = 0;
for (var j:int = 0; j < 5000000; j++)
{
    ++i;
}// use about 400ms too
Run Code Online (Sandbox Code Playgroud)

为什么i=i+1ActionScript 3中的速度更慢?

对不起,我犯了一些错误.上面的代码使用的时间相同.但如果把它投入使用,结果会有所不同.

var i:int;
var j:int;
var startTime:Number;

function func1():void
{
    i = i + 1;
}

function func2():void
{ …
Run Code Online (Sandbox Code Playgroud)

performance actionscript-3 pre-increment post-increment

5
推荐指数
1
解决办法
4614
查看次数

C中的后增量和预增量运算符

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

#include <stdio.h>
void main()
{
 int i=-3, j=2, m, k=0;
 m=++i && ++j || ++k;
 printf("%d %d %d %d", i, j, m, k);
}
Run Code Online (Sandbox Code Playgroud)

c pre-increment post-increment

5
推荐指数
2
解决办法
3253
查看次数

为什么第一次分配str1 [0]?不应该是str1 [1]吗?

在for循环中,我们使用的是在循环开始执行之前递增的++i含义.我在这里弄错了什么?i1

这是代码:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[100], str2[100];
    int i;
    scanf("%s", str1);
    for (i = 0; str1[i] != '\0'; ++i) {
        str2[i] = str1[i];
    }
    str2[i] = '\0';
    printf("%s\n", str2);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c for-loop pre-increment

5
推荐指数
1
解决办法
102
查看次数

非典型用于Javascript的++和 - 运算符

如果我从Crockford的"Javascript:The Good Parts"中正确回忆起来,他并不赞成使用++或 - 运算符,但我也倾向于回忆他并没有提供一个特别强烈的反对它们的论据.

下面是这些运算符的使用,我发现这些运算符有助于保持我的代码尽可能简洁,特别是在处理返回-1的函数/方法时,0是第一个可能的有效返回值(以及正整数).我会对++和/或其他非典型用法感兴趣,这些用法有利于在有意义的情况下使用这些运算符.

认为这是为什么要避免JavaScript中的增量("++")和减量(" - ")运算符?而是它的必然结果:何时不能避免它们,而是将它们用于你的优势.当然我可能会弄错,可能有一些原因我不会想到为什么以下是充满危险的,尽管我觉得我很优雅 - 如果我遗漏了以下关于以下内容的次优,我我也想知道

var substrIdx = str.indexOf(substr);
if (++substrIdx) {
  doSomething(--substrIdx);
}
Run Code Online (Sandbox Code Playgroud)

javascript increment operators pre-increment decrement

4
推荐指数
1
解决办法
157
查看次数

++ nc vs nc = nc + 1

在K&R Ch 1中:

该语句++nc提供了一个新的运算符,++表示递增1.你可以改写nc = nc + 1,但++nc更简洁,效率更高.

预增量何时比替代方案更有效?对于大多数事情,至少,两者的程序集都是add(edit:或inc)指令.它们何时不同?

c pre-increment

4
推荐指数
1
解决办法
359
查看次数

Java前后递增

我无法理解以下代码块.

   int count = 0;
   for (int i = 0; i < 3; i++){
       count += (count++);
       System.out.println("count = " + count);
       System.out.println("i = " + i);
   }
Run Code Online (Sandbox Code Playgroud)

我的理解是循环运行三次以执行以下操作

count = count + count
count = 1 + count
Run Code Online (Sandbox Code Playgroud)

这将转换为以下内容,因为count最初为0:

count = 0 + 0
count = 1 + 0 = 1
count = 1 + 1 = 2
count = 1 + 2 = 3
count = 3 + 3 = 6
count = 6 + 1 = 7 …
Run Code Online (Sandbox Code Playgroud)

java loops pre-increment post-increment

4
推荐指数
1
解决办法
257
查看次数

C程序中preincrement算子的行为

我正在运行以下C代码:

#define cube(x) (x*x*x)
void main()
{   
    int x=2,y;   
    y=cube(++x);            
    printf("%d %d",++x,y);    
}
Run Code Online (Sandbox Code Playgroud)

我期待结果为

6,60
Run Code Online (Sandbox Code Playgroud)

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

void main()
{   
    int x=2,y;   
    y=++x*++x*++x;            
    printf("%d %d",++x,y);    
}
Run Code Online (Sandbox Code Playgroud)

如果我错了,请纠正我.

我将结果解释为3*4*5 = 60
但是它将会变为125

c pre-increment

4
推荐指数
1
解决办法
2842
查看次数

何时在Java中使用post增量和pre增量

我知道StackOverflow上有很多关于这个主题的问题.但我仍然有点困惑,不确定何时使用这些操作.我正在通过旧考试来学习考试.其中一种方法可以获得残疾人无障碍且可用的教室数量.我写了计数器方法,但不确定我是否应该预先增加或增加计数器.我很困惑它如何在方法中使用return语句.我仍然没有得到该方法将在下面返回的值.其他问题没有显示方法中的返回值,因此我很困惑它实际上是如何工作的.这是代码:

  public int howManyHandi()
{
    int counter= 0;
    for (int i = 0; i < _clsrms.length; i++){
        if (_clsrms[i].handicappedSuitable() && _clsrms[i].isAvailable()){
            ++counter;
        }
    }
    return counter;
}  
Run Code Online (Sandbox Code Playgroud)

java increment pre-increment post-increment

4
推荐指数
1
解决办法
8820
查看次数

如何在Python列表中实现前后增量?

在Python中,我们如何在列表的方括号内增加或减少索引?

例如,在Java中使用以下代码

array[i] = value
i-- 
Run Code Online (Sandbox Code Playgroud)

可写成

array[i--] 
Run Code Online (Sandbox Code Playgroud)

Python中,我们如何实现它? list[i--]不管用

我目前正在使用

list[i] = value 
i -= 1 
Run Code Online (Sandbox Code Playgroud)

请提供一个简洁的方法来实现此步骤.

python java pre-increment post-increment

4
推荐指数
1
解决办法
590
查看次数

什么时候 ++c 和 c++ 增量完全应用在这里?

只是为了看看我对++c/c++运算符的工作原理了解多少,我尝试运行这些 C 程序:

int c = 5;
c = c - c++;
printf("%d\n", c);
Run Code Online (Sandbox Code Playgroud)

打印 1,我猜逻辑是 ++ 在使用它的代码行之后应用,因此c变为= c - c0,并在“下一行”增加一。但对我来说似乎很奇怪,我想更详细地了解操作员优先级应该发生什么。

现在开始:

int c = 5;
c = c - ++c;
printf("%d\n", c);
Run Code Online (Sandbox Code Playgroud)

这个打印0,我真的不明白为什么。如果从左到右解析右手值,我想它会读取c哪个是 5,然后++c哪个是 6,因为它应该立即应用。或者它是否++c在整个右手值计算之前计算,因此它实际上是在做 6 - 6,因为增量还涉及第一次调用c

c c++ unary-operator pre-increment post-increment

4
推荐指数
1
解决办法
238
查看次数