static做用: 1限制範圍(函數,變量只能在本文件中使用) 2設定變量存儲區域(靜態存儲區域) const做用: 聲明常量,它不能被修改,它存放在常量區
const定義的常量在函數執行以後其空間會被釋放,而static定義的靜態常量在函數執行後不會被釋放其空間。
- const int *p = &s;//(1)
- int const *p = &s;//(2)
- int * const p = &s;//(3)
- const int * const p = &s;//(4)
(1)和(2)的效果是同樣的,意思是 p 是可變的,可是 p 指向的值是不可變的。 (3)就恰好相反,p 是不可變的,只能指向一個地方,可是 p 指向的值是可變的。 (4)p不可變,*p 也不可變。 函數