為什麼結果是y 40,z ,為什麼結果是y 40,z

2022-11-11 11:35:12 字數 992 閱讀 6152

1樓:colin熊

關鍵的問題在於fun中定義的static靜態變數y,這個變數在整個程式階段都存在,並且子函式內部定義的靜態變數只有一份副本,也就是說重新執行這個子函式時這個變數仍舊是存在的。

另外需要注意的就是賦值與初始化,由於靜態變數y已經存在了,並且已經賦值,那麼初始化操作就不會成功,也就是第二次執行子函式時,初始化操作後y的值仍然不變。

func(x)=40這個好理解,在這句話執行之後,static變數y仍然存放在記憶體空間中,且其值為40。

func(y)這個呼叫子函式,第一句話是初始化,則初始化失敗,y的值仍然為40,因此後面的計算得到y=120,返回給變數z。

2樓:風雷九州

使用static宣告的變數稱為靜態變數,靜態變數在函式結束之後也會保持不變,下次呼叫的時候還是沿用上次的呼叫

y=func(x); //y接收返回值,所以y=40int func(int x) 第一次呼叫x = 15,y=10

z=func(y); //z接收返回值,所以z=120int func(int x) 第一次呼叫x = 40,y=40

最終列印y=40,z=120

3樓:思緒無痕

關鍵是這個:static int y=10上面第一次執行y=func(x) 時候,

static int y=10;//此時y=10,x=15x=2*x;//y=10,x=30

y=x+y;//y=40,x=30

return(y);//return y (y=40)執行完y=func(x) 這裡的y只是 static y 的值傳遞,並不是static y。但是相同的是 他們的值都是40.

下次執行z=func(y) 時

int func(int x)

你可以在static int y=10;下面加一句輸出printf("y=%d",y);

這樣就很明瞭了。

y 2x 4為什麼結果是 0, 43,2 ,什麼是有序偶,還有如何在座標裡標出來,最好有圖

有序偶是指有先後順序的一對數,例如有序偶 a b 和 b a 儘管元素相同,但因為順序不同,因此是不同的兩個有序偶。問題中 0,4 3,2 均為有序偶。其實滿足條件的答案很多。只要使等式y 2x 4成立即可。比如 2,0 4,4 等。只要對x賦一個值就能得到對應的y值。滿足y 2x 4的答案很多,不...

輸出的結果是多少?為什麼,下面程式碼輸出的結果是什麼?為什麼?麻煩詳細解釋。

i 1 i 1 i 5成立,開始迴圈b i 2 b 1 2 1 b 0成立,b b 0 開始迴圈 k k 1 b 0成立,b b 1 繼續迴圈 k k 2 b 0不成立,結束迴圈 i i 2 i 5成立,繼續迴圈b i 2 b 2 2 0 b 0成立,b b 1 開始迴圈 k k 3 b 0不成立,...

葡萄不結果是怎麼回事,葡萄樹為什麼不結果,葡萄不結果怎麼辦

1 生長環境不利 自家種植葡萄時,光照和通風比較重要,如果生長在光照不足 通風不良的環境下,它結的果實會一年比一年少,直至不結果。2 時間未到 葡萄尤其自己的結果時間,有些幼苗在購買回來時,苗齡較短,只有1 2年,所以種植管理再好,它也不會那麼快結果,到了它結果的時間自然就會結果。3 肥料不足 種植...