[問題] local變數和vector
敝人對vector某地方有點疑問
一般來說,local variable在函數中執行完便會消失
假設有被assign給其他的變數,在跳出函數後進行存取會變成無用值
那麼我寫了像下面一段程式:
void Test()
{
int A = 100;
Object.push_back(A); //Object為global變數
}
int main()
{
Test();
cout <<Object.size() <<endl; //Result : 1
cout <<Object[0] <<endl; //Result : 100
return 0;
}
請問,為什麼vector中的內容物可以正確被讀取?
A這個int變數,不是為local variable嗎?
為什麼會在跳出函數之後,卻依舊可以被vector正常讀取?
還是說,push_back()這個動作,是複製一份同等的資料結構進去
所以不管是否為local variable,皆可正常存取
還請各位指點一下這個觀念,謝謝
--
ˍˍ
極目冷眼笑蒼雲 ▕寂寞▏
寂寞一生傲天穹 ▕侯印▏
 ̄ ̄
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.118.3.81
※ 編輯: godman362 來自: 122.118.3.81 (10/01 16:07)
推
10/01 16:27, , 1F
10/01 16:27, 1F
推
10/01 16:28, , 2F
10/01 16:28, 2F
→
10/01 16:30, , 3F
10/01 16:30, 3F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章