C++ 聲明、定義、初始化、賦值


聲明:只是規定了變量的類型和名字,而沒有進行內存分配
定義:不僅規定了變量的類型和名字,而且進行了內存分配,也可能會對量進行初始化。
初始化:當對象在創建時獲得了一個特定值
賦值:擦除原有的值,並賦予新值

int a;                      //聲明並定義a
extern int a;               //extern表示聲明但不定義a。
extern int a = 2;           //任何包含了顯示初始化的聲明就成了定義
int a = 2;                  //初始化
a = 3;                      //賦值

一個小細節

對於int a = 2;我們可以很明顯地分析這句話是聲明並定義了變量a,並將a初始化為2。
但是對於int a;這句代碼,我們該怎么分析呢?
首先這句代碼聲明並定義了a,但是它到底有沒有進行初始化呢?
還記得我之前說定義有可能初始化么,其實這個初始化不僅包括顯式初始化,而且包括默認初始化
但是默認初始化又與變量的類型和變量所在的位置有關:

當變量為自定義類類型:

調用自身的默認構造函數進行初始化。

當變量為內置類型時:

該變量定義在函數體外時,將被初始化為0。
該變量定義在函數體內時,將不會進行初始化。

所以對於int a;這行代碼是否進行初始化,還跟其所在的位置有關。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM