#include <stdio.h>
void change(int *num1, int *num2) {
*num1 = 50;
++*num2++;
}
int main() {
int num1 = 1; int num2 = 2;
char bye[] = "Bye World!";
printf("Hello World!\n%s\n", &bye);
printf("num1: %d, num2: %d\n", num1, num2);
change(&num1, &num2);
printf("num1: %d, num2: %d\n", num1, num2);
getchar();
return 0;
}
查看以下代码,为什么输出:
Hello World! Bye world!
num1: 1, num2: 2
num1: 50, num2: 3
而不是
Hello World! Bye world!
num1: 1, num2: 2
num1: 50, num2: 4
在change()
下,num2
不应该在conf.set("spark.dynamicAllocation.enabled","true")
之后增加1
预增量?我想这就是记忆中发生的事情:
答案 0 :(得分:2)
在
++*num2++
下,在预增量之后,++
是否仍然应该增加1?
不,不应该。这有两个原因:
num2
中num2
适用于(ns cheating-quine)
... stuff here doesn't really matter ...
(println (slurp *file*))
指向的任何内容,但第二个适用于unlist
本身到期to precedence rules:post-increment的优先级高于pre-increment和dereference。答案 1 :(得分:0)
++*num2++;
表示与:
相同++(*(num2++));
即。每次增加*num2
和num2
。它不会增加*num2
两次。