const關鍵字與指標
const修飾指標的4種形式
(1) const.關鍵字,在c語言中用來修飾變數,表示這個變數是常量。
(2) const修飾指標有4種形式,區分清楚這4種即可全部理解const和指標。
第一種:const int *p;
第二種:int const *p;
第三種:int* const p;
第四種:const int* const p;
(3)關於指標變數的理解,主要涉及到2個變數:第乙個是指標變數p本身,第二個是p指向的那個變數(*p)。乙個const關鍵字只能修飾乙個變數,所以弄清楚這4個表示式的關鍵就是搞清楚const放在某個位置是修飾誰的。
#include voidmain()
const修飾的變數真的不能改嗎?
(1)**練習說明:const修飾的變數其實是可以改的(前提是gcc環境下)。
#include voidmain()
(2)在某些微控制器環境下,const修飾的變數是不可以改的。const修飾的變數到底能不能真的被修改,取決於具體的環境,c語言本身並沒有完全嚴格一致的要求。
(3)在gcc中,const是通過編譯器在編譯的時候執行檢查來確保實現的(也就是說const型別的變數不能改是編譯錯誤,不是執行時錯誤。)所以我們只要想辦法騙過編譯器,就可以修改const定義的常量,而執行時不會報錯。
(4)更深入一層的原因,是因為gcc把const型別的常量也放在了data段,其實和普通的全域性變數放在data段是一樣實現的,只是通過編譯器認定這個變數是const的,執行時並沒有標記const標誌,所以只要騙過編譯器就可以修改了。
const究竟應該怎麼用
(1)const是在編譯器中實現的,編譯時檢查,並非不能騙過。所以在c語言中使用const,就好象是一種道德約束而非法律約束,所以大家使用const時更多是傳遞一種資訊,就是告訴編譯器、也告訴讀程式的人,這個變數是不應該也不必被修改的。
const關鍵字與指標
1 const修飾指標的四種形式 a.const是關鍵字,在c語言中原來修飾變數,表示這個變數是常量。const int inum 10 和 int const inum 10 的效果是一樣的。b.const修飾指標有4種形式。區分清楚這4種即可全部理解const和指標。1 const int p ...
const 關鍵字與指標
一.入門 概念引入 定義乙個 int 型別的普通變數 val 假設它的值是 10。再定義乙個指向該變數的指標 val ptr 它儲存了 val 的位址。1 int val 10 2 int val ptr val 乙個 int 型別的變數儲存的是 int 型別的值,同理,乙個指向 int 型別的指標...
C 指標與const關鍵字
在c 中,我們經常使用const關鍵字來定義常量,這是const的基礎用法。然而,當const與指標變數結合起來時,情況就會變得稍稍複雜,下面講解const與指標變數結合的三種形式。const關鍵字在指標型別之前定義,我們稱這種情況為常量指標,形式如下 int a 10,b 20 const int...