2015-05-13 14 views
-4
#include<stdio.h> 
int a; 
int fun(int b) 
{ 
    static int c=3; 
    return ((++a)+(++b)+(++c)); 
} 
Main() 
{ 
    int i,a=2; 
    for(i=0;i<2;i++) 
     printf("%5d",fun(a)); 
} 

我認爲答案是1012,但沒有補償有關的「靜態」的用法,真正的基本

我想知道的進展

+2

'Main()'甚至不會編譯。 「*我想知道進展*」進展?什麼? –

+3

使用一些在線編譯器如http://ideone.com/並自己檢查 –

+0

你錯了。一個小提示:主「a」與全球「a」不一樣。 – mch

回答

2

響應弗蘭克·豪評論

全球int a初始化爲0.

for i = 0; 
first call fun(2) 
{ 
return ((1)+(3)+(4)); 
} 

for i = 1; 
second call fun(2) 
{ 
return ((2)+(3)+(5)); 
}