變量的可見性(即作用域)和生命期既有區別,又有聯系。
一個變量在程序的某處沒有可見性,但生命期任然可以存在,比如局部靜態變量的可見性在它所在的函數裡面,在函數外部不可訪問,但是它的生命期確是整個程序的運行期間;而一個變量生命期結束,它也就沒有了可見性,就像局部變量,隨著棧空間的釋放,它也就不存在了,所以外部無法訪問。
決定一個變量的可見性是變量被聲明的位置(就像局部靜態變量,由於在函數裡面聲明,所以只能在函數裡面可見),而決定一個變量的生命期是變量在內存中的位置(就像靜態局部變量不是分配在棧上,而是分配在內存靜態存儲區,因此生命期也和普通局部變量不一樣).