const是"Constant"的縮寫,可以用來修飾不同的東西,像是變數或指標或函數...等,被const所修飾到的內容是不可變的。
通常會使用在修飾一個不應該被修改的內容,而且當我們宣告一個const的內容時,必須要將他初始化,不然我們並不能再除了初始化之外的任何時間賦予其值。
1.修飾變數:
一般有兩種寫法:
const TYPE value;
TYPE const value;
EX:
const int value;//value是const,value不可變
int const value;//value是const,value不可變
兩種寫法結果是一樣的,代表的意思是const修飾的內容,在這邊代表的是修飾類行為TYPE的變數value是不可變的。
2.修飾指標類型(根據const修飾的內容不同,會有不同的狀況):
const TYPE *Content;
TYPE const *Content;
TYPE* const Content;
const TYPE* const Content;
根據"1 修飾變數"的內容可以知道本例中的第一種和第二種狀況相同,也因此:
const int* Content;//指標(Content)可變,指標指到的內容(*Content)不可變
int* const Content;//指標(Content)不可變,指標指到的內容(*Content)可變
const int* const Content;//指標(Content)和指標指到的內容(*Content)皆不可變
3.修飾函數
TYPE fun(TYPE value) const {/...../}
const TYPE fun(TYPE value) {/...../}
EX:
int fun(int value) const {/...../}//通常用在類別(class)的宣告中,其函數在執行的過程中不能修改資料成員
const int fun(int value) {/...../}//回傳的內容是不可變的
有夢最美 築夢踏實
活在當下 認真過每一天
我是阿夢 也是Ace