1. 程式人生 > >C++ 宣告,定義與初始化的基本概念

C++ 宣告,定義與初始化的基本概念

對於變數:

官方的解釋:

宣告一個變數只是將變數名識別符號的有關資訊告訴編譯器,使編譯器“認識”該識別符號,但宣告不一定引起記憶體的分配。而定義變數意味著給變數分配記憶體空間,用於存放對應型別的資料,變數名就是對相應的記憶體單元的命名。
在C++程式中,大多數情況下變數宣告也就是變數定義,宣告變數的同時也就完成了變數的定義,只有宣告外部變數時例外。

同一個檔案下:
對於變數而言,在同一個檔案裡面,很少使用宣告這個說法,一般沒有人去說我要宣告一個變數,然後定義這個變數。或者說,宣告與定義沒有明顯的區別。就好比 int a;我們可以說這是一個宣告,也可以說這是一個定義,因為當程式執行到這句話的時候就完成了記憶體分配。資料型別,變數名,對應的記憶體單元就已經明確了。

int a =1;就完成了初始化,因為它明確了記憶體單元裡到底存放什麼樣的資料。

多個檔案下:

在同一個工程,在多個檔案中變數的宣告和定義才有區別(比如說在first.c檔案中先定義了一個int a;我在second.c中要訪問這個a,這時我們需要在second.c這個檔案中宣告一下);

對於函式:

而對於函式而言,宣告和定義就有明顯的區別了,首先定義一個函式要明確函式的型別,引數,名稱和功能,比如:

int  fun(int a,int b)
       {  int  c;
           c=a+b;
           return c;   
       }

而這個函式如果在main函式的後面定義,但是在main函式裡面要呼叫它;或者在一個檔案中定義,在另一個函式中要引用它,此時就需要對其宣告:

int  fun(int a,int b);