我有一個很小的代碼,但我無法得到爲什麼輸出是這樣的。
這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