2017-10-07 34 views
0

的第二運行時中使用更新後的值,我需要初始化a = 3(假定爲全局變量),然後在函數中更改a的值,因此當I中的值更新時運行程序。若要更新全局變量並在程序

現在,當我第二次運行該程序時,a的值未更新,它與a = 3相同。

我應該如何更新a的值,以便下次運行程序時可以使用更新後的值?

+0

你能提供我最小的工作示例嗎?很難說出你的問題是什麼意思(但看起來你需要將'a'的值保存到磁盤)。 – norok2

+0

歡迎來到stackoverflow.com。請花些時間閱讀[幫助頁面](http://stackoverflow.com/help),尤其是名爲[「我可以問些什麼話題?」](http://stackoverflow.com/help/討論話題)和[「我應該避免問什麼類型的問題?」](http://stackoverflow.com/help/dont-ask)。還請[參觀](http://stackoverflow.com/tour)和[閱讀如何提出好問題](http://stackoverflow.com/help/how-to-ask)。最後,請學習如何創建[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 –

+0

@ norok2 問題是這樣的: 對於程序中的管理員用戶,我(假設)initialise int password = 1(沒有密碼編無法繼續)。現在,管理員在第一次運行時編程中更改他的密碼(假設password = 2 )並且當我第二次運行程序時,密碼的值仍然是1,它不會更新並且密碼保持不變。 – user160046

回答

0

程序的靜態存儲(全局變量存儲在其中)是爲了程序的生命,而不是計算機的存在。

在計算機上運行的每個進程(程序)都會從操作系統獲取RAM內存的已定義區域以供其使用。 (包括代碼運行,readonly(和const)變量,堆棧(本地變量駐留的地方),堆(動態分配的變量駐留的地方)和靜態變量以及靜態變量一些更多的東西。

當程序退出時,該內存將被釋放,並且不再與此進程或任何進程關聯,直到重新分配爲止。

如果要在兩個不同的運行中使用它,請將數據保存到文件(在硬盤驅動器上)。

+0

動態存儲數據會有什麼好處? – user160046

+0

不,我會編輯以詳細闡述 – Neo

+0

@ user160046編輯,供參考。 – Neo