[問題] 給值的問題
請問在 function 裡面
void f()
{
int x = 0;
}
void f()
{
static int x = 0;
}
與 在 function 外面的 global
int x = 0;
這幾個動作有什麼不一樣嗎?
不是都是給予 x 初始值 0 嗎?
為什麼有人說是不一樣的?
有人說 global 的 int x = 0; 是給與初始值
static 的 static int x = 0; 也是給予初始值
但是 function 內的 int x = 0;
其實是 int x;
x = 0;
這兩個動作。
所以 function 內的 int x = 0;
並不是給予初始值,而是將宣告 x 變數、給予 x 變數的值 = 0
兩個動作合成一塊。
我知道 static 的 function 內部給予初值,
第二次進入的時候初值不會再設定(畢竟已經不是第一次進入了)
所以假設
int f()
{
static int x = 0;
x++;
return x;
}
呼叫第二次 f() 的結果將會是 2
所以說在 function 裡面的 local 變數 int x = 0; 並不是給予初始值嗎?
請指教。
--
鄉民們的中心思想是個幹幹的表現是如果不爽就幹如果很爽就補個幹如果太爽大家
陪你一起幹如以幹為本體表現在具體的生活上他媽柏油張爸一起來對美女伸圖對白
爛噓文對嗚溜迷手滑對注音文失敗對對閃光有墨鏡喔批踢踢的中心主版是黑特黑特
的表現是扯到政治就浸扯到版務也浸沒有亂扯就看板主心情如以黑特為海綿體表現
在版上的推文中他媽ㄋㄐ路小比一起來要懂得推齊要心存懷疑要充滿 timyau 幹意
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.31.183.207
推
04/14 16:35, , 1F
04/14 16:35, 1F
→
04/14 16:35, , 2F
04/14 16:35, 2F
→
04/14 16:36, , 3F
04/14 16:36, 3F
→
04/14 16:37, , 4F
04/14 16:37, 4F
→
04/14 16:37, , 5F
04/14 16:37, 5F
→
04/14 16:37, , 6F
04/14 16:37, 6F
→
04/14 16:39, , 7F
04/14 16:39, 7F
→
04/14 17:28, , 8F
04/14 17:28, 8F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章