国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

靜態(tài)變量什么時候初始化 linux系統(tǒng)中,初始化的全局變量和未初始化過的全局變量保存在哪?

linux系統(tǒng)中,初始化的全局變量和未初始化過的全局變量保存在哪?由C/C編譯的程序所占用的內(nèi)存分為以下幾部分:1。堆棧由編譯器自動分配和釋放,存儲函數(shù)參數(shù)和局部變量的值。其操作類似于數(shù)據(jù)結(jié)構(gòu)中的堆棧

linux系統(tǒng)中,初始化的全局變量和未初始化過的全局變量保存在哪?

由C/C編譯的程序所占用的內(nèi)存分為以下幾部分:1。堆棧由編譯器自動分配和釋放,存儲函數(shù)參數(shù)和局部變量的值。其操作類似于數(shù)據(jù)結(jié)構(gòu)中的堆棧。2堆通常由程序員分配和釋放。如果程序員沒有釋放堆,那么在程序結(jié)束時,操作系統(tǒng)可能會恢復堆。注意,它在數(shù)據(jù)結(jié)構(gòu)上與heap不同。分配方法類似鏈表,哈哈。三。全局區(qū)域(靜態(tài))-將全局變量和靜態(tài)變量的存儲放在一起。初始化的全局變量和靜態(tài)變量在一個區(qū)域中,未初始化的全局變量和未初始化的靜態(tài)變量在另一個相鄰區(qū)域中。-程序完成后,由系統(tǒng)發(fā)布。4文本常量區(qū)域-常量字符串放在這里。程序完成后,系統(tǒng)發(fā)布5。程序代碼區(qū)-函數(shù)體的二進制代碼。

如何初始化一個類中的靜態(tài)成員變量?

如果我們不考慮父類,我們可以先進行靜態(tài)初始化,然后進行非靜態(tài)初始化。

靜態(tài)初始化包括靜態(tài)成員變量和靜態(tài)塊的初始化。實際上,靜態(tài)塊在編譯期間是集中的。

非靜態(tài)初始化包括非靜態(tài)成員變量初始化、非靜態(tài)塊和構(gòu)造方法,編譯后集中在構(gòu)造方法中。

如果沒有相互通話,那就非常簡單了。首先,靜態(tài)初始化。如果在靜態(tài)初始化過程中調(diào)用了后者呢?!你可以編寫一個代碼來測試它:

輸出:

你可以先看到它確實是靜態(tài)初始化,但是中間有對構(gòu)造方法的調(diào)用。

雖然編譯器不報告錯誤,但此調(diào)用實際上是有風險的。

由于靜態(tài)成員變量(如果已設(shè)置)在初始化之前調(diào)用類構(gòu)造函數(shù)(假設(shè)存在依賴關(guān)系),因此該過程實際上是不可控制的。

看看這個例子:你能想象這種輸出嗎?

因此,如果必須在靜態(tài)初始化過程中調(diào)用此類的構(gòu)造函數(shù)。

一定要注意初始化順序,準確到語句。

的靜態(tài)成員變量為什么一定要初始化?

我們知道C類的靜態(tài)成員變量需要初始化,但是為什么要初始化它們呢。實際上,“靜態(tài)成員變量需要初始化”這句話有一些問題。應該說“靜態(tài)成員變量需要定義”是準確的,而不是初始化。兩者的區(qū)別在于初始化是分配一個初始值,而定義是分配內(nèi)存。靜態(tài)成員變量只在類中聲明,而沒有定義,因此在類外定義它們實際上是為靜態(tài)成員變量分配內(nèi)存。