C 指標 常量和型別別名

2021-10-13 15:47:53 字數 888 閱讀 4570

在《c++ primer》61頁看到這個,有點繞。

typedef

char

*pstring;

const pstring cstr =0;

//cstr 是乙個指向char 型別的常量指標???

const pstring *ps ;

//ps首先是乙個指標。並且它指向的是乙個char型別的常量指標

我看到第二行的時候,當時的反應就是

const pstring cstr =

0;

替換為

const

char

* cstr, 也就是 const

char

*cstr;

//這樣的話,就表示cstr是乙個指標,該指標指向char型別的常量

這個就是和書上的指標是常量相悖了呀???

但是書上寫了這樣一句話

宣告語句中用到pstring時,其基本資料型別是指標

所以我對這個點的理解是:

這個pstring 型別必須當做整體來看,也就是乙個指標

然後前面是乙個const,來修飾這個指標,代表的就是常量指標

而之前的理解直接替換的話,就把這個char和 * 分開了。導致char 和前面的const結合,意思就大不一樣了。

有理解不到位的地方,還請多多指正!謝謝。

指標 常量和型別別名

今天看了c primer的2.5.1的一點小理解。如果某個型別的別名指代的是復合型別或是常量,那麼它用到宣告語句裡面就會產生意想不到的後果,例如下面的宣告語句用到了型別pstring,它實際上是型別char 的別名 typedef char pstring const pstring cstr 0 ...

Go No nil 型別別名

為型別起個別名,方便 編寫過程中使用。type alias ttype 關鍵字 alias 型別別名 t 型別 例如資料型別中提到的unicode字元型rune和ascii字元型byte就是型別別名 type rune int32 type byte uint8在 go 中有一些基本的資料型別,如s...

C 學習筆記 型別別名

一 c 為型別建立別名的方式有兩種 1 使用預處理器 define byte char 預處理器將在編譯程式時用char替換所有的byte,從而使byte成為char的別名。2 使用c 關鍵字typedef來建立別名 typedef typename aliasname include typede...