void指標和const筆記
阿新 • • 發佈:2018-12-05
前言:之前學習C語言,不知是忘記了還是印象不夠深刻,在之後寫程式碼的一些日子裡,用到void的時候只知道他是一個空型別,而const型別基本上沒用過。這次第三次細緻地再學一遍C的時候,對這兩個知識點有了個重點的回顧,在此記錄下易搞混的幾個知識點。
- void指標
void指標是一種不確定資料型別的指標變數,它可以通過強制型別轉換讓該變數指向任何資料型別的變數
一般形式為: void * <指標變數名稱> ;
對於void指標,在沒有強制型別轉換之前,不能進行任何指標的算術運算
由上可知,void其實是一個空型別指標,不過他可以進行隨意的資料型別的轉換。
例如:void指標指向一個數組,只有通過(*int)(eg)來進行一個數據轉換,才能進行算術運算。
void *malloc (size_t size);這個函式是返回值為空(NULL),也算是void 的一個應用
2. const變數(重要)-----------------------常量化變數值
(1)一般說明形式如下:
const <資料型別> 變數名 = [<表示式>] ; 常量化變數是為了使得變數的值不能修改
(2)const修飾指標 常量化指標目標表達式
一般說明形式如下:
const <資料型別> * <指標變數名稱>[= <指標運算表示式>] ;
常量化指標目標是限制通過指標改變其目標的數值 ,但<指標變數>儲存的地址值可以修改。
eg: const char *str;//可以修改str的儲存地址但是指標指向的目標變數的數值不能進行修改。
(3)常量化指標變數
一般說明形式如下:
<資料型別> * const <指標變數名稱>[= <指標運算表示式>] ;
使得<指標變數>儲存的地址值不能修改。但可以通過 *<指標變數名稱> 可以修改指標所指向變數的數值
eg: char * const str;//不可以修改str的儲存地址,但是其指向變數值可以進行修改。