C與C 的區別 const 引用

2021-09-01 16:15:30 字數 2457 閱讀 4131

1、 引用就是乙個記憶體單元的別名 (底層以指標的方式來支援引用,在引用使用的地方,系統自帶解引用過程)

引用一定要初始化

引用引用的變數一定要能取位址

引用不可改變的

只能訪問引用變數所引用的記憶體塊的內容

int &b = a;   b引用a,b指向a的記憶體塊,即她倆位址相同

//說明引用底層以指標方式處理

引用引用的變數不能取位址  ==> 常引用可以處理

數值放到臨時量(記憶體)    常引用引用臨時量的記憶體單元

#include using namespace std;

int main()

const與*

#include using namespace std;

int main()

1.防止形參被修改

2.接收臨時變數

int mul(const int& a, const int& b)

int main()

不能返回區域性變數的指標和引用動態申請陣列

c++中使用     new    delete

c中使用      malloc   free

void* malloc(size_t size);

void  free(void *prt);

new與malloc區別:

1. new是關鍵字

malloc是乙個函式

2.  malloc在堆上生成

new自主訪問區域

3.malloc只開闢記憶體

new還可以初始化

4.記憶體不足時

malloc是返回null

new會丟擲異常

5.malloc不能開闢常量記憶體

new可以開闢常量記憶體

int main()

free(p1);

int* p2 = new int[10];

delete p2;

int* p3 = new int(10);

cout << *p3 << endl;

delete p3;

int* p4 = new int[10]();

delete p4;

const int* p5 = new const int(10);

delete p5;

const int* p6 = new const int[10]();

delete p6;

int** p7 = (int**)malloc(sizeof(int*)* 10);

for (int i = 0; i < 10; i++)

for (int i = 0; i < 10; i++)

free(p7);

int** p8 = new int*[10];

for (int i = 0; i < 10; i++)

for (int i = 0; i < 10; i++)

delete p8;

}

c

全域性作用域

區域性作用域

c++全域性作用域

區域性作用域

名字空間作用域

類作用域

namespace

加上作用域

::全域性作用域訪問符

名字空間名稱::名字空間作用域訪問符

類::類作用域訪問符

using宣告

using  namespace  //using 指示符

int main()

名字空間同名==>合併

namespace cy1201

namespace cy1201

//這段**會報錯a被重定義,所以可以判斷出名字空間同名會合併

C 引用與const引用

1 在實際的程式中,引用主要被用做函式的形式引數 通常將類物件傳遞給乙個函式.引用必須初始化.但是用物件的位址初始化引用是錯誤的,我們可以定義乙個指標引用.1int ival 1092 2 int re ival ok 3int re2 ival 錯誤 4int pi ival 5int pi2 p...

C 引用 指標與const

引用即繫結到另乙個物件上,因此定義了乙個引用,對其操作即是對與之繫結的物件進行操作 如為引用賦值,獲取引用的值,以引用作為初始值.與引用類似,實現對物件的間接訪問。指標和引用的本質區別 引用不是物件,指標本身即是物件。指標和引用的共同 都需要型別和物件型別嚴格匹配 不支援型別轉換 並且指標只能指向變...

C 引用 const 引用

通過引用修改它指向變數的值 也就是說 通過修改 b 達到修改 a 的目的,也可以修改a int a 5 int b a b 40 int c b 此時a b c 40 例項1 宣告 double getarea int num 呼叫 double area this getarea 30 1 將30...