相关疑难解决方法(0)


不推荐使用++,它将在swift 3中删除

++将在swift 3中弃用

变量++现在可以写成

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

我该怎么改写++variable.

请回忆一下++variablevariable++语法之间的区别

ios swift

13
推荐指数
1
解决办法
8956
查看次数

函数参数中预增量和后增量的运算顺序?

我有一些C代码:

main()
{
    int a=1;
    void xyz(int,int);

    xyz(++a,a++);     //which Unary Operator is executed first, ++a or a++?

    printf("%d",a);
}
void xyz(int x,int y)
{
    printf("\n%d %d",x,y);
}
Run Code Online (Sandbox Code Playgroud)

该函数xyz有两个传入的参数,++aa++.有人可以解释操作顺序来解释结果吗?

上面的代码根据使用的编译器打印"3 13"或"2 23".

c pre-increment post-increment

11
推荐指数
2
解决办法
2万
查看次数

在for循环中,根据迭代总量,在循环控制变量的前/后递增之间是否存在差异?

当我用下面的代码编译并运行代码counter++++counter替换时x,输出是相同的; 在这两种情况下,数字1 - 10:

for (int counter = 1; counter < 11; x)
{
    std::cout << counter << endl;
}
Run Code Online (Sandbox Code Playgroud)

最初我认为++counter会增加1,然后返回新值,然后在循环头中评估布尔表达式.即,当使用counter = 1和使用时++counter,counter布尔表达式中的值为2.这似乎并非如此,因为两个输出都是相同的,而不是++counter像我预期的那样具有少一次迭代的版本.

在周围读取时,它分别在循环体的开始或结束处出现++countercounter++递增counter1.在这种情况下,至少在概念上,这不是一个相同的行动吗?因为一旦循环超过第一次迭代,循环的结束和开始是相同的.

我唯一能看到这个有所作为的是第一次迭代,std::cout << counter << endl;如果counter++使用的话,应该输出1到控制台(因为在循环结束时将1添加到计数器).虽然std::cout << counter << endl;应该输出2到控制台如果++counter被使用(因为1被添加在循环的开始到计数器).

除了上面的问题,你能否准确地解释在for循环标题中评估三个动作的顺序,并准确地解释使用i++和时迭代发生的位置++i.

非常感谢!

c++ for-loop increment pre-increment post-increment

6
推荐指数
2
解决办法
1552
查看次数

标签 统计

post-increment ×3

pre-increment ×3

c++ ×2

c ×1

for-loop ×1

increment ×1

ios ×1

oop ×1

performance ×1

swift ×1