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,是唯讀的變數,並...