C/C++聲明、定義、初始化、賦值的概念


一、聲明 - declaration

聲明:告訴編譯器某個東西(變量或函數)的名稱和類型,但略去細節。
通俗的講就是:告訴編譯器我這個變量或函數是有的,我要用,只是現在不定義,你先不要給我報錯,定義我后面補上。
比如:

extern int x;						//對象object聲明
std::size_t numDigits(int number); 	//function聲明
class widget;						//class聲明
template<typename T>
class GraphNode;					//模板template聲明

二、定義 - definition

1.變量的定義:變量的定義用於為變量分配存儲空間,還可以為變量指定初始值。在一個程序中,變量有且僅有一個定義。

聲明和定義兩者聯系與區別:
(1)定義也是聲明(定義是一種特殊的聲明),因為當定義變量時我們也向程序表明了它的類型和名字;
(2)但聲明不是定義,可以通過使用extern關鍵字聲明變量而不定義它。不定義變量的聲明包括對象名、對象類型和對象類型前的關鍵字extern;
(3)程序中變量可以聲明多次,但只能定義一次。
(4)變量聲明:(1)不分配空間 變量定義:(1)分配空間 (2)注意:定義是一種特殊的聲明.
總結來說:
聲明一個變量只是將變量名標識符的有關信息告訴編譯器,使編譯器“認識”該標識符,但聲明不一定引起內存的分配。而定義變量意味着給變量分配內存空間,用於存放對應類型的數據,變量名就是對相應的內存單元的命名。

三、初始化 - initialization

初始化是給對象賦予初值的過程
(1)變量初始化:在定義的同時賦值;(注意,定義之后,再去賦值不叫初始化)
(2)對於類的對象:初始化由構造函數執行。所謂的default構造函數是一個可被調用而不帶任何實際參數者,這樣的構造函數要不沒有參數,要不就是每個參數都有缺省值。

四、賦值

大家都懂的。
————————————————
版權聲明:本文為CSDN博主「博雅勇士」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/boyaaboy/article/details/102676656


免責聲明!

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



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