1. 程式人生 > >區分“const型別指標”和“指向const型別指標”小技巧

區分“const型別指標”和“指向const型別指標”小技巧

C++中我們常常會遇到下面的兩種寫法:

const int * a;
int * const b;

這兩種寫法明顯代表不同的涵義

第一種代表指向一個整形常量的指標
第二種代表一個指向整形的指標常量

第一種const修飾的是整形,意味著指標所指向的整形是不可以改變的,但是該指標可以改指向其他整形。
第二種const修飾的是指標,意味著指標所指向的整形數值是可以改變的,但是指標不能指向別的整形。

那如何更好地記住這兩個含義呢,筆者總結出了一個小技巧:

直接翻譯法

const int * a 直接翻譯過來就是“常量整形指標”
int const * b 翻譯過來就是“整形常量指標”
我們只要記住常量

在哪一個詞前,就代表修飾該詞,所以“常量整形指標”說明整形才是常量,指標可以變,“整形常量指標”說明指標是常量,整形可以變。