const修飾符 小結

2021-08-02 12:18:16 字數 964 閱讀 9928

1. const 和extern

預設狀態下const物件僅在檔案內有效

當編譯器以初始化的方式定義乙個const物件時,編譯器將在編譯過程中吧用到該變數的地方都替換成對應的值,

為了執行上述替換,編譯器必須知道變數的初始值,所以通常const的有效域就在本檔案

為了能在其他檔案中使用該const變數 可以使用 extern 修飾符

例://file_1.cc

extern const int bufsize= fcn();//或者extern const int bufsize=10

//file _1.h

extern const int bufsize;

2.const的引用

當把引用繫結到const物件上時,即對常量的引用,該引用不能修改它所繫結的物件

3.指標和const

指向常量的指標:不能用來改變其所指向物件的值

const double   pi = 3.14;

double *ptr = &pi//error普通指標不能接受常量指標

const double *cptr = pi// cptr 可以指向雙精度常量

*cptr =42 // error不能給 *cptr賦值

const指標:指標是常量 必須初始化   指標儲存的位址不能更改

int * const p;

3.頂層const與底層const

頂層const表示 :指標本身就是常量

底層const表示 :指標指向的物件是乙個常量

4.const 在函式前和const在函式後的區別

const 放在函式後表示這個函式是常成員函式, 常成員函式是不能改變成員變數值的函式。

如果返回值為某個物件為const或某個物件的引用為const   ,則返回值具有const屬性,則返回例項只能訪問類a中的公有資料成員和const成員函式,並且不允許對其進行賦值操作,這在一般情況下很少用 到

const 型別修飾符

const是用來限定所指定的變數或者函式不可作修改。1 修飾變數 當const用來修飾變數的時候,const所指定部分不可修改。a.修飾常規變數 如 const int a 10 int const a 10 這兩種方式的效果一樣,都是將a描述為常量,a的值在被賦初值後不可以修改。但是這和由巨集定義...

Java 修飾符小結。

類修飾符 public 可以從其他類中訪問 obstract 本類不能被例項化 final 不能再宣告子類 構造器修飾符 public 可以從所有的類中訪問 protected 只能從自己的類和它的子類中訪問 private 只能在本類中訪問 域修飾符 public 可以從所有的類中訪問 prote...

也談const 修飾符

指向常量物件的指標與常量指標,兩者在表達方式及作用意義上有什麼不同?const int count int const pint 兩者有什麼不同呢?一.指向常量的指標 const int count 實際表示count 所指向的物件是int 型的常量物件,它意味著不能通過該指標來間接地修改任何它所指...