iOS培訓篇——C++變量的聲明和定義介紹

藍鷗iOS培訓講師推薦:技術天下,掌握一門過硬的技術成爲如今最強有力的資本,走到哪都能吃得開,那麼iOS開發是如今最流行的行業之一,也是同學追求的目標!

一個函數一般由兩部分組成:聲明部分和執行語句

聲明部分的作用是對有關的標識符(如變量,函數,結構體,共用體等)的屬性進行說明,對於函數,聲明和定義的區別是明顯的,前邊已說明,函數的聲明是函數的原型,而函數的定義是函數功能的確立,對函數的聲明是可以放在聲明部分中的,而函數的定義顯然不在函數的聲明部分範圍內,它是一個文件中的獨立模塊。

對變量而言,聲明與定義的關係稍微複雜一些,在聲明部分出現的變量有兩種情況:一種是需要建立存儲空間的(如int a; );另一種是不需要建立存儲空間的(如extern int a;),前者稱爲定義性聲明(defining declaration),或簡稱爲定義(definition),後者稱爲引用性聲明(referenceing declaration),廣義地說,聲明包括定義,但並非所有的聲明都是定義,對“int a;” 而言,它是定義性聲明,既可說是聲明,又可說是定義,而對“extern int a;” 而言,它是聲明而不是定義,一般爲了敘述方便,把建立存儲空間的聲明稱爲定義,而把不需要建立存儲空間的聲明稱爲聲明,顯然這裏指的聲明是狹義的,即非定義性聲明,例如:

int main( )
{
   extern int a;//這是聲明不是定義,聲明a是一個已定義的外部變量
   …
}
int a;//是定義,定義a爲整型外部變量

外部變量定義和外部變量聲明的含義是不一樣的,外部變量的定義只能有一次,它的位置在所有函數之外,而同一文件中的外部變量的聲明可以有多次,它的位置可以在函數之內,也可以在函數之外,系統根據外部變量的定義分配存儲單元,對外部變量的初始化只能在定義時進行,而不能在聲明中進行,所謂聲明,其作用是向編譯系統發出一個信息,聲明該變量是一個在後面定義的外部變量,僅僅是爲了提前引用該變量而作的聲明,extern只用作聲明,而不用於定義。

用static來聲明一個變量的作用有二: (1)對局部變量用static聲明,使該變量在本函數調用結束後不釋放,整個程序執行期間始終存在,使其存儲期爲程序的全過程,(2)全局變量用static聲明,則該變量的作用域只限於本文件模塊(即被聲明的文件中)。

不過大家一定要注意:用auto,register,static聲明變量的時候,是在定義變量的基礎上加上前面的關鍵字,不能單獨用,應該寫成這樣的形式“static int a;”

本章小結:這樣一來,大家就能夠掌握關於C++變量的聲明和定義的相關內容,及其用法,如有不懂得地方可相互溝通!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章