#include <stdio.h>
int fun (intA)
{
int b=0;
static int c=3;
a =( c++ ,b++ );
return ( a );
}
main()
{
int a = 2,i,k;
for (i=0;i<2;i++)
k = fun(a++);
printf("%d\n",k);
}
uj5u.com熱心網友回復:
程式有錯:int fun (intA)
和
a =( c++ ,b++ ); // a未定義
uj5u.com熱心網友回復:
結果應該是0
0
uj5u.com熱心網友回復:
輸出是0關鍵是a =( c++ ,b++ );這句,逗號運算子的順序是這樣的:
1、取c和b的值,參與逗號運算子運算,回傳b的值給a
2、執行c+1和b+1
因為b是臨時變數,每次呼叫函式都被初始化成0,所以不管你a引數傳進來什么,逗號運算子永遠回傳b的值
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/74415.html
標籤:基礎類
上一篇:程式運行無問題,但一直有三個報警,如何消除三個警告!
下一篇:請大神們救救我
