**:
問題:如果函式需要傳入乙個指標,面試官可能會問是否需要為該指標加上const,把const加在指標不同位置有什麼區別;如果寫的函式需要傳入的引數是乙個複雜型別的例項,面試官可能會問傳入值引數或者引用引數有什麼區別,什麼時候需要為傳入的引用引數加上const?
1、const是用來宣告乙個常量的,當你不想讓乙個值改變時就用const。
當const修飾指標時:
int b=100;
const int*a=&b; [1]
int const *a=&b; [2]
int* const a=&b; [3 ]
const int* const a=&b; [4]
如果const位於星號的左側,則const就是用來修飾指標所指向的變數,即指標指向為常量;因此,[1]和[2]的情況相同,都是指標所指向的內容為常量(const放在變數宣告符的位置無關),這種情況下不允許對內容進行更改操作,如不能*a=3;
如果const位於星號的右側,const就是修飾指標本身,即指標本身是常量,[3]為指標本身是常量,而指標所指向的內容不是常量,。這種情況下不能對指標本身更改操作,如a++是錯誤的;
[4]為指標本身和指向的內容均為常量
2、用const修飾函式的輸入引數。
第一,對於非內部資料型別的輸入引數,應該將「值傳遞」的方式改為「const引用,目的提高效率」。例如將void func(a a)改為voidfun(const a&a)。第二,對於內部資料型別的輸入引數,不要將「值傳遞」的方式改為「const引用傳遞」。否則既達不到高效率的目的,有降低了函式的可理解性。例如void func(int x)不應該改為void func(const int&x)。
程式語言 const限定詞的用法
物件導向是c 的重要特性.但是c 在c的基礎上新增加的幾點優化也是很耀眼的 就const直接可以取代c中的 define 以下幾點很重要,學不好後果也也很嚴重 const 1.限定符宣告變數只能被讀 const int i 5 int j 0 i j 非法,導致編譯錯誤 j i 合法 2.必須初始化...
c語言 Const專題
const 專題 intmain 和 的作用是一樣的 不能隨便修改 的值 const 放在 的左邊,修飾的是指標 中儲存的位址所指向的記憶體空間,是指指標 中所儲存的位址所指向的記憶體空間不可被寫,只可被讀 const 放在 的右邊邊,修飾的是指標 中儲存的位址,是指指標 中所儲存的位址不可改變,但...
C語言 const 用法
1 const int a int const a 這兩個寫法是等同的,表示a是乙個int常量。2 const int a int const a 表示a是乙個指標,可以任意指向int常量或者int變數,它總是把它所指向的目標當作乙個int常量。3 int const a 表示a是乙個指標常量,初始...