1. 程式人生 > 其它 >2020.12.08 學習const限定變數為只讀 extern外部引用宣告

2020.12.08 學習const限定變數為只讀 extern外部引用宣告

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 多用於多檔案程式設計裡變數、函式、其他資料型別的引用宣告
注意:外部引用宣告時不能賦值