const修飾符和指標

2021-07-25 04:50:27 字數 733 閱讀 4878

char** const cpp1 = null;

cpp1 -> char* cp1;

cp1 -> char c1;

cpp1是乙個常量指標,所以cpp1需要在定義的時候初始化,它指向乙個char*型的指標cp1。

char* const* cpp2;

cpp2 -> char* const cp2;

const cp2 -> char c2;

cpp2指向乙個char*型常量指標cp2,cp1和cp2型別一樣,只差了乙個const修飾符,所以cpp2和cpp1指向的型別是一樣的,cpp2 = cpp1是合法的。

const

char** cpp3;

cpp3 -> const

char* cp3;

cp3 -> const

char c3;

cpp3指向乙個const char*型指標cp3。

char

const** cpp4;

cpp4 -> char

const* cp4;

cp4 -> char

const c4

cpp4指向乙個char const*型指標cp4,cp4和cp3指向的型別為char的常量,所以cpp4和cpp3實際上是同乙個型別。

語法錯誤 const* 沒有具體型別。

指標修飾C語言const修飾符探秘指標修飾

ps 今天上午,非常鬱悶,有很多簡單基礎的問題搞得我有些迷茫,哎,幾天不寫就忘。目前又不當coo,還是得用心記 哦!c言語是我接觸的第一門序程設計言語,時當還很傻很無邪,後來敏捷被各種高階言語 但是不得不說,c的位置真的無可撼動。const修飾符在c言語中很用常,但是近最讀 的時候常常搞不清楚,索搜...

const 型別修飾符

const是用來限定所指定的變數或者函式不可作修改。1 修飾變數 當const用來修飾變數的時候,const所指定部分不可修改。a.修飾常規變數 如 const int a 10 int const a 10 這兩種方式的效果一樣,都是將a描述為常量,a的值在被賦初值後不可以修改。但是這和由巨集定義...

const修飾符 小結

1.const 和extern 預設狀態下const物件僅在檔案內有效 當編譯器以初始化的方式定義乙個const物件時,編譯器將在編譯過程中吧用到該變數的地方都替換成對應的值,為了執行上述替換,編譯器必須知道變數的初始值,所以通常const的有效域就在本檔案 為了能在其他檔案中使用該const變數 ...