1. 程式人生 > >指標常量和常量指標(指向常量的指標)

指標常量和常量指標(指向常量的指標)

        很多與檔案操作相關的函式其引數型別都是const char*(指向常量的指標)型別,下面就簡單介紹一下常量指標(指向常量的指標)(const char*)與指標常量(char *const)這兩種型別的區別。

        1. const char*

 型別: 指向常量的指標

 const所在的位置: 在“*”的前面

 const在char的前面或後面都是一樣的,但通常將const放置在char的前面

特點: 對一個利用const char*型別定義的常量指標來說,不能修改其指向的記憶體中的內容,但可以修改其所指向的記憶體地址

例子:

         char ch[6] = "asdfg";

         const char* pStr = ch;

如果對pStr變數進行如下操作:

         *pStr = 'S';             // error

         pStr = "qwert";         // ok

        2. char* const

型別: 指標常量

const所在的位置: 在“*”的後面,但在所定義的指標名稱的前面

要注意的是,對於指標常量,必須在其定義的同時賦值

指標常量表示指標本身是常量。

特點: 對一個利用char* const型別定義的指標常量來說,其值是一個指標常量,是不能修改的,但它所指向的內容是可以修改的

例子:

         char ch[6] = "asdfg";

         char* const pStr = ch;

如果對pStr變數進行如下操作:

         pStr = "qwert";        // error

         *pStr = 'S';         // ok