1樓:
a=3,函式g(a,2)返回3+2=5,
呼叫fan(a,3),定義靜態區域性變數x,此x在範圍內起作用,y=3>2,執行x=x*x;這時的x為靜態區域性變數,即x=2;執行語句x=x*x;y=x;後,靜態區域性變數x為2*2=4,y=x=4,語句到了return x+y;注意,這時已經不是靜態區域性變數x的範圍,此時的x為函式fan(int x,int y)中定義的x,x+y=3+4=7
呼叫fan(a,2),此時靜態區域性變數x儲存上次執行的結果4,y=2,執行y=x+1,此時是靜態區域性變數的範圍,y=4+1=5;再到return x+y;跳出靜態區域性x的範圍,此時x為fan(int x,int y)中定義的x=3,x+y=3+5=8
在中,靜態區域性x將起作用,出了這個範圍,邊上函式引數x起作用
2樓:我愛
static是靜態的意思。
f函式裡面的x初始化為2,然後以後就不會初始化了,數值時一直沿用下去的,
你是不懂最後一個為何是8是吧?,
因為最後一次,函式f是跳到
else y = x+1;這一句,但是這裡的x是上一次呼叫函式時的x,也就是4,所以y=5,
x+y = 3 + 5=8; //注意靜態變數的作用域,這裡的x已經變回傳入的引數
3樓:匿名使用者
這個題出的有問題吧?
f()中x被重定義了編不過啊~!!!
c語言有關函式呼叫的題目,這個C語言函式呼叫題目怎麼做?
希望我的回答對你的學習有幫助 include int factorial int n return fac int main printf 1 2 3 10 d n sum return 0 include int fun int n void main c語言題目 c語言程式中,當呼叫函式時,哪個...
c語言題目(函式呼叫),C語言題目(函式呼叫)
a宣告時形參名可以忽略也可以任意合法的變數名,但是其型別不能忽略。以上的講,可能你不好理解,我來告訴你吧 a型別必須要一樣,而且數量一定要相同,宣告形參可以寫也可以不寫 bc語言中,在宣告函式的時候其形式引數可以只是資料型別不用寫出具體的識別符號,如果要寫出具體的識別符號的話,就一定要和函式定義的識...
C語言迴圈題目,c語言有關迴圈的題目
include int main int i,j,n scanf d n for i 0 ifor j 0 jprintf for j 0 j 2 i j printf printf n for i n 2 i 0 i for j 0 jprintf for j 0 j 2 i j printf p...