2020.12.08 學習const限定變數為只讀 extern外部引用宣告
阿新 • • 發佈:2020-12-09
const 限定一個變數為只讀
概念
用const限定的是變數,而不是常量。
示例
Pt.1
const int a;//這是沒意義的,申請了空間但沒有值
const int a;
a=12;//這是錯的,現在變數a是隻讀變數
const int a=66;//賦值為66並不能改變。
Pt.2
const char buf[100]="Hello CSDN\n";//只讀陣列,陣列的元素將不能改變
上面倆段很好理解,有點繞的是指標方面:
Pt.3
const float *fp;
float * const *ft;
float const *fd;
const float * const fq;
第一行解析
#include <stdio.h>
int main(void)
{
float a=100.22;
float b=2.33;
const float *fp=&a;
}
這個程式碼的意思是fp所指向的 float型別的 地址的值只讀
意思是不可以通過它去更改a的值,比如:
*fp=99.66;//這是錯誤的
但是可以更改fp所指向的地址,比如:
fp=&b;//這是沒問題的。
第二行解析
它和第一行正好相反,ft所指向的float型別的地址只讀
第三行解析
第三行的意思和第一行一模一樣
第四行解析
它的意思很明顯就是一二行的結合,fq所指向float型別的地址和地址所指向的值都只讀。
const 結尾
過段時間就會忘記const在哪就是地址只讀,在哪就是地址所存的值只讀,這裡總結一個小技巧,就是const的結合性永遠從右往左讀,挨著就是地址只讀,不挨著就是當前地址的值只讀,但是該指標可以變換指向。
extern 作用
extern 多用於多檔案程式設計裡變數、函式、其他資料型別的引用宣告
注意:外部引用宣告時不能賦值