我們在程序設(shè)計(jì)中,時(shí)時(shí)刻刻都用到變量的定義和變量的聲明,可有些時(shí)候我們對這個(gè)概念不是很清楚,知道它是怎么用,但卻不知是怎么一會(huì)事,下面我就簡單的把他們的區(qū)別介紹如下:
變量的聲明有兩種情況:
(1) 一種是需要建立存儲空間的(定義、聲明)。例如:int a在聲明的時(shí)候就已經(jīng)建立了存儲空間。
(2) 另一種是不需要建立存儲空間的(聲明)。例如:extern int a其中變量a是在別的文件中定義的。
前者是"定義性聲明(defining declaration)"或者稱為"定義(definition)",而后者是"引用性聲明(referncing declaration)"。從廣義的角度來講聲明中包含著定義,但是并非所有的聲明都是定義,例如:int a它既是聲明,同時(shí)又是定義。然而對于extern a來講它只是聲明不是定義。一般的情況下我們常常這樣敘述,把建立空間的聲明稱之為"定義",而把不需要建立存儲空間稱之為"聲明"。很明顯我們在這里指的聲明是范圍比較窄的,也就是說非定義性質(zhì)的聲明。
例如:在主函數(shù)中
int A;//是定義,定義了A為整型的外部變量(全局變量)
用static來聲明一個(gè)變量的作用有二:
(1) 對于局部變量用static聲明,則是為該變量分配的空間在整個(gè)程序的執(zhí)行期內(nèi)都始終存在
(2) 外部變量用static來聲明,則該變量的作用只限于本文件模塊
新聞熱點(diǎn)
疑難解答
圖片精選