C C 資料的共享與保護

2021-09-25 00:12:57 字數 1178 閱讀 8328

當程式中遇到常量時:

如果程式複雜,用到的常量比較多的化,不能很簡單的看出某個常量時用來做什麼的。

在實際中應該盡量避免產生這種magic number,可以使用c語言提供的預定義功能

# define pi 3.14

auto f(

double radius)

;

預定義有自己的侷限(比如不能進行型別檢查)

更好的工具是const關鍵字,它的作用是定義乙個常量

對於c風格的字串,它是用char陣列來儲存的。對於乙個字串常量可以這樣定義:

char

* str =

"hello"

;

不能修改hello若是不小心寫下*str[2]=『x』;*這樣的語句,會導致對唯讀記憶體區域的賦值,然後程式會立刻異常終止。

所以對於字串常量,應使用const關鍵字來進行修飾。

const

char

*char

="hello"

;

加了const之後,這個錯誤在編譯階段就能被檢查出來,不會再等到實際執行的時候才出問題。

const

int* n;

intconst

* n;

需要注意以下兩點:

常量指標說的是不能通過這個指標改變變數的值,但是可以通過其他的引用來改變變數的值。

常量指標指向的值不能改變,但是並不意味著指標本身不能改變,常量指標可以指向其他的位址

int

*const n = address;

指標常量指向的位址不能改變,但是可以通過指標常量,來改變指標所指向的變數的值:

int a=5;

int*

const n =

&a;*n =

8;

可以這樣考慮:

將星號讀作指標,將const讀作常量,從左往右讀內容正好與之相符。

C C ,常物件 保護共享資料

定義常物件的作用是為了保證該物件中資料成員的值不能被修改。定義常物件的一般形式為 類名 const 物件名 實參表 或者 const 類名 物件名 實參表 include using namespace std class student void change int n,float s void...

資料共享與保護

作用域 是識別符號的有效範圍 可見性 識別符號是否可以引用的問題 程式執行到某一點。能夠引用到的識別符號,就是該處可見的識別符號。函式原型的作用域 函式原型中的引數,其作用域始於 結束於 例如,設有下列原型宣告 double area double radius radius 的作用域僅在於此,不能...

資料的共享與保護

1.生存期 1 靜態生存期 定義 若物件的生存期與程式的執行期相同,則稱它具有靜態生存期 方式 使用關鍵字static 在命名空間作用域宣告的物件都具有靜態生存期 2 動態生存期 區域性生存期物件誕生於宣告點,結束於宣告所在的塊執行完畢之時。例 變數的生存期與可見性 include using na...