以下代码
int i=0;
while(i<10) {
printf("%d\n", i++);
}
Run Code Online (Sandbox Code Playgroud)
相当于
int i=0;
while(i<10) {
printf("%d\n", i); i++;
}
Run Code Online (Sandbox Code Playgroud)
但是下面的代码
int i=0;
while(i<10) {
printf("%d\n", i+=2);
}
Run Code Online (Sandbox Code Playgroud)
相当于
int i=0;
while(i<10) {
i+=2; printf("%d\n", i);
}
Run Code Online (Sandbox Code Playgroud)
如何使它等同于
int i=0;
while(i<10) {
printf("%d\n", i); i+=2;
}
Run Code Online (Sandbox Code Playgroud)
同样的 i++
您也可以编写宏来执行此操作.像这样:
#define POSTINC(var, val) ((var) += (val), (var) - (val))
printf("%d\n", POSTINC(i,2));
Run Code Online (Sandbox Code Playgroud)
但是更好地使用for或者只是增加下一个语句中的值.