2 回答

TA貢獻(xiàn)1911條經(jīng)驗 獲得超7個贊
const 是常量, 也就是只讀的, 是一個"右值"
比如
const int iRet = 2 ;
iRet = 3 ; // 這句是錯的, const類型只能在初始化的時候賦值, 之后不能改變
static稱為靜態(tài)變量, static有兩種, 一種是在類的成員變量中, 一種是局部變量或全局變量.
在類中的, 用代碼解釋
class exp {
static int i1 ;
int i2 ;
} ;
int main() {
exp e1 ;
exp e2 ;
e1.i1 = 5 ;
e1.i2 = 10 ;
e2.i1 = 15 ;
e2.i2 = 20 ;
cout << e1.i1 << endl ; //這是輸出的會是15
cout << e1.i2 << endl ; // 這里輸出是10
return 0 ;
}
類中的static變量的意思是, 在這個類的所有實例中的值都是一樣的, 它與const不同, const 只是只讀, 在其他方面與不帶const的變量沒什么區(qū)別
還有一種是const全局變量或局部變量, 這兩種是相同的, 局部變量的作用域會和全局變量相同
上代碼:
static int i1 ;
int add(int a, int b) {
static int c = a + b ;
return c ;
}
void main() {
add(5, 8);
int result = c ; //這里 result會是13 無論static變量 是全局的還是局部的, 作用域都和全局變量相同
cout<<result<<endl;
}
還有幾點static的特點,(適用于static全局變量或局部變量)
1.static變量在全局?jǐn)?shù)據(jù)區(qū)分配內(nèi)存, 也就是 在生成的可執(zhí)行文件中占一定空間, 這點與全局變量相同
2.static變量只在它所在的源文件中可用. 如果一個項目有很多 .c或者.cpp文件, static變量可以出現(xiàn)在每一個文件中, 而他們卻是不同的, static可以解決許多文件中變量 名字相同的問題.
- 2 回答
- 0 關(guān)注
- 316 瀏覽
添加回答
舉報