使用const 宣告函數參數時,區分「const int」至關重要' 和'int const'。雖然它們看起來相同,但修飾符的順序會改變聲明的解釋。
'const int' 宣告一個常數(無法修改)且型別為 int 的變數。這裡的重點是 const 限定符應用於 變數。
'int const',另一方面,宣告一個int 型別的變量,也是常數。在本例中,const 限定符修改 類型,而不是變數。
那麼,這兩個函數相同嗎?
<code class="c">int testfunc1 (const int a) { return a; } int testfunc2 (int const a) { return a; }</code>
是的,它們是等價的。 向後閱讀聲明可以澄清這一點。
對於 'const int':
對於 'int const':
在這兩種情況下,「a」既是整數又是常數。
但是,向後讀取技巧在複雜聲明中變得非常寶貴:
<code class="c">// "s" is a pointer to a char that is constant const char *s; // "t" is a constant pointer to a char char *const t = &c; // The char in "s" is constant, so you can't modify it *s = 'A'; // Can't do // The pointer in "s" is not constant, so you can modify it s++; // Can do // The char in "t" is not constant, so you can modify it *t = 'A'; // Can do // The pointer in "t" is constant, so you can't modify it t++; // Can't do</code>
請記住,在C 中,const 資料成員可以在類別宣告或建構函式中初始化。而在 C 中,const 資料成員被視為符號常數,必須在宣告中初始化,這使得它們非常接近 #define。
以上是C 和 C 中的「const int」與「int const」:它們真的相同嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!