C 中的const用法 2

2021-06-28 11:33:32 字數 697 閱讀 2410

前面寫過一篇部落格介紹const用法:c++中的const用法

今天發現有個忙點,特此補充。

我們知道,一般const修飾指標時有三種情況。

const int *p;
這表示p指向乙個int型的const變數,但是指標本身並不是const。

int a = 0;

int *const p = &a;

這種情況表示指標是const,一旦初始化不能指向另外的資料。

int a = 0;

const int *const p = &a;

這種情況表示指標和指標指向的物件都是const。

但是,問題來了。

如果使用typedef,比如這樣

typedef int *intp;

const intp p;

那麼p是什麼型別的指標?

我毫不猶豫的回答是普通的指標,但是指向const的int變數。

然而實際上p是const指標,其指向的變數並不是const變數。因為intp是一種資料型別,即int指標型別,const修飾該指標型別,因此是const指標,上面的兩行等價於

int *const p;

C 中const的用法

1 const修飾普通變數和指標 1 const修飾普通變數 其寫法有2種 a const type value b type const value 這兩種寫法本質上是一樣的。其含義是 const修飾的型別為type的變數value是不可變的。2 const修飾指標 a const char va...

關於c 中const的用法

1.當然最常用的還是作為常量。1 const int p的用法,表示指向的值得型別不變還是int型,但p的值可以變,可以這樣理解 自以為指向const的指標 可以將非const的物件賦值給他例如可以這樣 int i 3 int j 4 const int p p i cout p p j cout ...

c 中const的用法詳解

const是用於保護程式的健壯性,減少程式隱患。const的用法比較複雜,總結起來又分為以下兩種 1 在定義變數時使用 a const int a 100 最簡單的用法,說明變數a是乙個常變數 b int const b 100 與a功能相同 c const int a b 指向常數的指標,即指標本...