我有一个很小的代码,但我无法得到为什么输出是这样的。
这c函数参数评估和传递
#include <stdio.h>
int f(int i, int j, int k);
int main(int argc, char const *argv[])
{
int a;
printf("enter a\n");
scanf("%d",&a);
f(a,a++,a++);
printf("%d \n",a);
return 0;
}
int f(int i, int j, int k)
{
printf("function arguments \n");
printf("%d %d %d\n",i,j,k);
}
输入:4
输出:6 5 4
现在缩进请 – ogzd 2013-02-22 15:21:15
可能重复[参数评估顺序在C调用函数之前](http://stackoverflow.com/questions/376278/parameter-evaluation-order-before-a-function-calling-in -c) – unwind 2013-02-22 15:21:58
用'gcc -Wall myprog.c -o myprog'和* gcc *编译你的代码会好心告诉你*警告:'a'上的操作可能是未定义的* – 2013-02-22 15:30:17