c++ - 变量的赋值和初始化有什么区别
高洛峰
高洛峰 2017-04-17 14:23:05
0
6
646

可以的话自动变量和静态变量分开讨论

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(6)
迷茫

變數初始化就是為變數定義一個初始值,意思是在程式被載入到記憶體的時候,這個變數的位址所存放的值就已經確定了。
而賦值在程式中體現為一條指令,在程式被載入到記憶體後,一個未初始化變數的位址存放的仍然是先前的內容,並不會清除,賦值就是一條將值寫入記憶體的指令。
靜態變數是全域性的,寫在可執行檔中的全域區,隨著可執行檔被載入到記憶體中,靜態變數的值就確定了,未初始化的靜態變數可能會被初始化為0。
局部變數一般是處在堆疊空間和堆空間中,這部分是載入到記憶體之後由系統分配的,系統不會為你做清理工作,因此如果你沒有初始化,記憶體中就是之前的值。

Peter_Zhu

賦值是給變數一個值
初始化的值不一定是你需要的那個值啊.

Ty80

const變數只能使用初始化表達式進行賦值
物件的初始化表達式呼叫的是其拷貝建構函數,而賦值語錄呼叫其等號操作符。

迷茫

初始化是變數例如$name='張三' 這個變數初始化,變數最最原始的值,也就是首次賦值
賦值的意思是程式在運行中必須給$name='李四' 再次賦值,無論初始化的時候$name是什麼值

大家讲道理

變數的初始化就是在定義變數的時候給變數分配記憶體空間的同時給它一個具體的值,靜態變數必須初始化,而自動變數初始化是可選的。
變數的賦值就是修改一個已定義的變數的值,自動變數是可賦值的,靜態變數不可賦值,靜態變數值在定義的時候就確定下來,自動變數在定義的時候如果未初始化,且之後也未賦值,是不可以使用的。

黄舟

第1次給一個變數一個值就是初始化,第2、3.....次就是賦值了。先有初始化,再有賦值的。靜態類型和自動類型的變數差異就是變數儲存的空間不一樣了。自動變數一般是儲存在堆疊中,靜態類型的話就是儲存在全域/靜態變數區裡面啦。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!