天天看點

學習C++2 函數篇

char *init (int ht=24,int wd,char ba);

這個聲明不對,在形參表中,具有預設實參的形參應該出現在形參表的末尾

靜态局部變量

靜态

​​局部變量​​​

屬于

​​​靜态存儲方式​​

,它具有以下特點:

(1)靜态​​局部變量​​​在函數内定義,但不像​​自動變量​​​那樣,當調用時就存在,退出函數時就消失。靜态​​局部變量​​始終存在着,也就是說它的生存期為整個源程式。

(2)靜态​​局部變量​​​的生存期雖然為整個源程式,但是其​​作用域​​​仍與​​自動變量​​相同,即隻能在定義該變量的函數内使用該變量。退出該函數後, 盡管該變量還繼續存在,但不能使用它。

(3)允許對構造類靜态局部量賦初值。若未賦以初值,則由系統自動指派。數值型變量自動賦初值0,字元型變量賦空字元。

(4)對基本類型的靜态​​局部變量​​​若在說明時未賦以初值,則系統自動賦予0值。而對​​自動變量​​​不賦初值,則其值是不定的。 根據靜态​​局部變量​​​的特點, 可以看出它是一種生存期為整個​​源檔案​​​的量。雖然離開定義它的函數後不能使用,但如再次調用定義它的函數時,它又可繼續使用, 而且儲存了前次被調用後留下的值。 是以,當多次調用一個函數且要求在調用之間保留某些變量的值時,可考慮采用靜态​​局部變量​​​。雖然用​​全局變量​​​也可以達到上述目的,但​​全局變量​​​有時會造成意外的副作用,是以仍以采用​​局部​​靜态變量為宜。

舉例說明