下面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语言标准并没有规定函数的各个参数的求值顺序,所有输出值的第一个列会因编译器的不同而不同.
阅读(1196) | 评论(0) | 转发(0) |