-
- 指標
先定義乙個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...