指標 與 引用 還有const

2021-07-24 22:51:16 字數 1449 閱讀 5526

-

- 指標

先定義乙個int型別的a,然後定義乙個指標p 指向 a 的位址 ,再定義乙個指向a的二重指標q,指向p的位址。

int a = 10;

int *p =

&a;// int *p; p =

&a;so *p == 10; p ==

&a;

cout<<" &a is "<<&a<

cout<<" p is "<

cout<<" &p is "<<&p<

cout<<"

*p is "<<*

p<

int **q; //a 的 二次指標 q =

&p;cout<<" &q is "<<&q<

cout<<" q is "<*q is "<<*

q<----------

引用定義乙個int變數a,然後用a1來引用a,實際上a1的記憶體位址就是a

int a = 10;

int &a1 = a;

cout<<" a is "<

cout<<" &a is "<<&a<

cout<<" &a1 is "<<&a1<

int b = 64;

a1 = b;

cout<<" a1 is "<

cout<<" &a1 is "<<&a1<

cout<<" b is "<<&b<

cout<<" a is "<----------

const用法

- 1.定義常量變數,這樣這個變數在後面就不可以再被修改

const int a = 10;

a = 2;//錯誤,不可被修改 2.

傳參時引數不被修改, 引用傳遞則函式外部傳進來的變數的值也發生改變

void f1(const int &a)

void f2(int &a) 3.

const a = 3;

int b = a;//為a分配記憶體

int c = a;//不在分配記憶體

const定義的變數,系統只為它分配一次記憶體,而使用#define定義的常量巨集,能分配好多次;

4. c++中乙個類中使用const來修飾函式 防止修改非static類成員變數

class

private:

int a ;

static int b; }

5. int a = 10;

int *const a1 =

&a;

const int *a2 =

&a;

只有乙個const 遠遠相配,近者在一起 如果const在表示式最左邊,則最右邊的資料為常量,剩下的為變數

如果const在表示式中間,則距離它最近的那個為常量不可變,剩下那個為變數

有2個const: const修飾指標變數時:指標和資料都為常量不可變。  

const, 引用與指標

const int bufsize 512 對const的引用 簡稱為 常量引用 const int ci 1024 常量 const int r1 ci 對常量的引用 常量引用,不允許通過r1修改ci不能通過引用來改變它所繫結的值 double dval 3.14 const double rd ...

const與指標 引用

定義乙個指標 p const int p null intconst p null int const p null 上面兩行定義完全等價,第三行則不同。下面兩行定義也完全等價 const int const p null intconst const p null 舉例說明 int x 3 con...

const 引用與指標

希望這是最後一次修頂這篇essay了,之前寫的兩次都有些小毛病。打臉,又來更新了。ps 右值指的是字面常量和表示式求值過程中建立的臨時變數。我們忽略掉了相同型別是否可以賦值的情況 我到現在的學習裡都還可以相互賦值 以及型別相容的情況。只考慮const 等修飾符帶來的影響 型別相容 const 底層c...