指標:const你去哪!!!指標是c語言的靈魂。const是c語言的乙個限定修飾符。當他們兩個結合在一起時,會發生很多有趣的事情。const:我去哪不重要,我在哪才重要。
在c語言裡,const和指標型別變數會組合為下面的形式
const
int*ptr;
intconst
*prt;
int*
const ptr;
const int *ptr
表示不可以通過指標修改它所指向的變數。
在c語言中,我們可以通過指標修改它所指向的變數的值。
int
main()
程式輸出:
a = 30, b = 30
我們發現指標的權力太大了,它不僅可以修改變數,甚至常量也可修改(c語言不是一種型別檢查嚴格的語言)。
當你希望限制指標的權力時,你可以給它加上const
,這樣你就不可以通過指標修改它所指向變數(常量)的值。const int *ptr
常常出現在函式引數中。我們在函式傳參時,對於乙個較大的資料(大的結構體),我們偏向於傳遞指標(位址),因為這樣在引數複製是會減少開銷。但是又不希望在函式體內對資料進行改變,我們可以加上const
進行限制。
const int *ptr
和int const *ptr
起到的效果是一樣的,這兩種寫法起到的作用是一樣的。
int * const ptr
表示不可以改變指標的指向。
這種型別的指標必須在宣告時賦值,不然毫無意義。
int
main()
編譯器輸出:
error: assignment of read-only variable 'ptr'
ptr =
&b;
c語言的指標和指標變數,c語言中的指標和陣列關聯
1 首先什麼是指標,很簡單,就是代表著乙個空間,這個空間指向某個位址,位址裡面又存有我們參加的儲存的值。3 指標變數的定義,取位址運算子和取值運算子 首先是指標變數的定義和賦值 變數型別 用的是指標指向的位址所儲存的值得資料型別 指標變數名 記得必須加 號 乙個位址 一般用取址運算子 在定義和初始化...
C 語言的黑客行為
在c 中,利用c 編譯器在實現虛函式呼叫時的某些伎倆,我們可以在類外直接呼叫到類的私有成員函式!如下,中有詳細的說明。cpp view plain copy c 語言的黑客行為 include class coo void coo foo intmain 注意 這裡沒有建立物件 即沒有this指標 ...
c語言指標 指標和指標變數
指標是c語言中乙個重要的概念,也是c語言的重要角色。可以說指標是c的精華所在,學習指標雖然不易,但是只要肯花上時間去反覆的理解和實踐,就一定可以很好的掌握它。一 指標是什麼 指標到底是什麼?我們先舉乙個例子。假設我們在火車站 附近開了一家賓館,這家賓館有三千多間屋子,為了方便管理,我們給每個房間都加...