C語言複習鞏固知識點 06 Const專題

2021-09-12 18:20:38 字數 1337 閱讀 2176

const是定義常量,const意味著唯讀。

int main()

int func1(const )

//第乙個和第二個意思一樣,代表乙個常整型數。

//第三個c是乙個指向整形的指標(所指向的記憶體資料不能被修改但是本身可以被修改)。

//第四個d為常指標(指標變數不能被修改但是它所指向的記憶體空間可以被修改)

//第五個乙個指向常整型的常指標(指標和它所指向的記憶體空間都不能被修改)

char greeting="hello";

char *p=greeting;//non-const pointer,non-const data;

const char *p=greeting;//non-const pointer,const data;

char * const p = greeting;//const pointer, non-const data;

const char * const p = greeting;//const pointer ,const data;

const 語法雖然變化多端,但並不是莫測高深,如果關鍵字const出現在*左邊,表示被指物是常量;

如果出現在*號右邊,表示指標自身是常量;如果出現在倆邊表示被指物和指標都是常量。

乙個例子

const int max = 10;//唯讀變數不能修改。

int *p = &max;//編譯不能通過,因為編譯認為你可能通過指標修改max的值。

int a = 10;

const int *p = &a;//約束指標p指向的變數不能被修改。

int *s = p;//不可以,能力擴充套件了,可以通過s修改a的值

const int *s = p;//可以

int * const s = p;//不可以,const 修飾的只是指標s本身不能被修改,但是s指向的變數可以被改變。能力擴充套件了,可以通過s修改a的值

const int * const s = p;//可以

int a = 10;

int * const p = &a;//指標p本身的值不能被修改

int *s = p;//可以,因為這個定義只說明可以通過s修改a的值,p的值並不會因為s而改變。

const int *s = p//變數不能被修改,和p沒啥關係,只是將p的值賦給了s

int * const s = p; //指標s本身的值不能被修改,和p也沒啥關係

const int * const s = p;//常指標指向的常變數,和p沒啥關係

C語言知識點複習

最近一直在寫go的 c語言有些生疏,復讀了一遍 高質量c程式設計指南 將其中有些遺忘的知識點總結如下。1 標頭檔案功能 呼叫庫功能 型別安全檢查 2 宣告 int x,y x為int指標,y為int值 3 浮點變數和0比較時應與spsinon比較 4 多重迴圈巢狀時,長的迴圈應放在內層,以減少cpu...

C語言知識點複習 一

break 跳出此迴圈 continue 跳出本次迴圈,繼續執行下一次迴圈操作 變數,記憶體,指標之間的關係 陣列,指標,函式 記憶體圖變數本質 儲存資料 陣列下標從0開始 陣列不初始化則陣列的每個元素為隨機數 取位址是用 p 可能是piont的意思 輸出8位16進製制數 要看電腦的匯流排數 陣列的...

C語言知識點 複習(1)

知識點總結 1.所有巨集定義 列舉常量 唯讀常量全用大寫字母命名,用下劃線分割單詞。2.不同型別資料之間的運算注意精度擴張問題,一般低精度向高精度擴張。3.sizeof在計算變數的時候,括號可以省略 在計算資料型別的時候,括號是不可以省略的。4.const應該改寫為readonly,是唯讀的變數,並...