下面4段简短代码,注意输出结果
static int p(int x){ return x*x; } int main(){ int i=3; printf("%d %d\n",i, p(i++) ); }
|
输出:
4 9
static int p(int x){ return x*x; } int main(){ int i=3;
printf("%d %d\n",i, p(++i) );
}
|
输出:
4 16
#define p(x) ((x)*(x)) int main(){
int i=3; printf("%d %d\n",i, p(i++) ); }
|
输出:
5 9
#define p(x) ((x)*(x)) int main(){
int i=3; printf("%d %d\n",i, p(++i) ); }
|
输出:
5 25
上面是在gcc编译器下的输出结果,由于C语言标准并没有规定函数的各个参数的求值顺序,所有输出值的第一个列会因编译器的不同而不同.
阅读(1155) | 评论(0) | 转发(0) |