通過(guò)c語(yǔ)言來(lái)理解static及const
一:static的理解
(1)從存儲(chǔ)空間來(lái)理解分為:程序區(qū)滨砍、靜態(tài)?存儲(chǔ)區(qū)、動(dòng)態(tài)存儲(chǔ)區(qū)妖异。 其中靜態(tài)存儲(chǔ)區(qū)為存儲(chǔ)靜態(tài)變量惋戏,變量從創(chuàng)建開(kāi)始就一直存在,直到程序結(jié)束銷(xiāo)毀他膳;動(dòng)態(tài)存儲(chǔ)區(qū)响逢,存儲(chǔ)動(dòng)態(tài)變量,如函數(shù)中創(chuàng)建的動(dòng)態(tài)變量矩乐,隨著函數(shù)結(jié)束就銷(xiāo)毀了龄句。
(2)對(duì)于一個(gè)數(shù)據(jù)的定義,需要指定兩種屬性:存儲(chǔ)類(lèi)型和數(shù)據(jù)類(lèi)型散罕。
static int a; (static為存儲(chǔ)類(lèi)型分歇,int 為數(shù)據(jù)類(lèi)型) auto char c; (auto為存儲(chǔ)類(lèi)型,char為數(shù)據(jù)類(lèi)型)
(3)按照作用域來(lái)分:(字寫(xiě)得不好看欧漱。职抡。。)
(4)靜態(tài)變量在程序整個(gè)運(yùn)行期間都不會(huì)釋放误甚,對(duì)靜態(tài)變量只在編譯時(shí)賦初值一次缚甩,以后每次調(diào)用函數(shù)時(shí)谱净,不再重新賦初值,而只是保留上一次函數(shù)調(diào)用結(jié)束時(shí)的值擅威。
二:const的理解
(1)const是一個(gè)c語(yǔ)言的關(guān)鍵字壕探,作用:是限定一個(gè)變量不允許被改變;好處:使用const在一定程度上可以提高程序的安全性和可靠性郊丛。
(2)如下面的例子:
const int a = 0;
const作為一個(gè)類(lèi)型限定詞李请,和int有相同的地位。
我們要明白const修飾的對(duì)象是誰(shuí)厉熟,const修飾的是變量导盅,int只是類(lèi)型,所以const修飾的是變量a揍瑟,而此時(shí)a是不可被改變白翻,不可被賦值的。
const int *p; *p指向的變量不可變 int * const p; p的值不可變