搜尋此網誌

2012年1月26日 星期四

const 指標變數修飾標的


int num1;
num1 是個 int

int *num2;
num2 是個指標, 指標所指的位置是個 int

const int *num3;
num3 是個指標, 指標所指的位置是個 const int,所以你不可以透過num3這個指標去改變num3所指到的位址的值.

int * const num4;
num4 是個 const 指標,你不能改變 num4 所指的位址,但可以透過num4這個指標去改變 num4所指到位址的值.

const int * const num5;
num5 是個 const 指標, 指標所指的位置是 const int,所以不能改變num5所指的位址,亦不能透過num5這個指標去改變num5所指到的位址的值.


判斷方法:
以 * 為基準點作劃分.
例如
const int * const num;

   如果 const 出現在*的左邊, 表示 num 這個指標所指到的位址的值是 const (不能透過num這個指標去改變num所指到的位址的值)

   如果 const 出現在*的右邊, 表示 num 這個指標是 const (不能改變num這個指標所指到的位址)

沒有留言: