C C和C 的區別2

2021-09-01 18:29:37 字數 2585 閱讀 3262

接上篇const的其它用法:

1、const - 形參:防止實參被修改、接收臨時量(替代實參傳遞時的位址傳遞、形參為指標的定義)

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

int main()

2、const - * 、const - **:杜絕間接訪問修改常量記憶體塊的值 (int **p -> const int ** p(*q p))

int main()

int main()

int& getdata(int data)

void func()

{}int main()

//區域性變數所開闢的記憶體會在該函式使用結束後由系統**(可再分配)、再引用區域性變數的位址,會訪問非法區域,

//存在成功的可能性,但當系統**的記憶體被再次分配後,再訪問區域性變數的位址就會出錯

c和c++在開闢記憶體上的區別:

c語言使用malloc 函式進行空間的開闢

c + + 使用new 關鍵字進行空間的開闢

1、記憶體的開闢與釋放:

c  :  int* p = ( int* ) malloc ( sizeof ( int ) );

free(p);

c++: int* p = new int ;

delete p;

2、陣列的開闢與釋放:

c  :   int* p = ( int * ) malloc ( sizeof ( int )* 10 );

free(p);

c++:int* p = new int [10];

delete  p;

4、二維陣列的開闢與釋放

c  :   int** p = ( int** ) malloc ( sizeof ( int* )* 10 );

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

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

free(p);

c++: int** p = new int*[10];

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

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

delete p;

4、malloc和new的區別:

malloc : 函式 、在堆區開闢記憶體

new   :關鍵字、自主儲存區開闢

5、開闢記憶體返回值的區別:

c  :開闢記憶體失敗返回null

c++:開闢失敗直接丟擲異常

6、開闢常量記憶體塊的開闢與釋放:

c  : 無法開闢常量記憶體塊

c++:const int* p = new const int (10);

delete p;

7、陣列的開闢與初始化

c  : 使用malloc開闢陣列的同時無法進行初始化賦值

c++:使用new 開闢陣列的同時可以進行初始化賦值,但是賦值的結果只能為全零

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

cout<8、new可以過載,malloc不可以

9、new可以呼叫malloc,malloc不可以呼叫new

c和c++的作用域:

c :

全域性作用域

區域性作用域

c++:

全域性作用域

區域性作用域

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

類作用域                類:: 類作用域訪問符

名字空間作用域:

#include

using namespace std;

namespace csdn

}int main()

#include

using namespace std;

namespace csdn

}namespace csdn

int main()

名字空間作用域:當不同的程式合併時,若出現重複函式,則分別才用不同的名字空間作用域予以區分

名字空間作用域的定義:  namespace + 作用域

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

當名字空間作用域同名時:合併、當相同名字空間作用域存在相同變數時,報錯、變數名重定義

using namespace std; 為c++的函式名字空間作用域 ,可採用std::方式對名字空間作用域內的函式進行呼叫

C C和C 的區別

兩個數相加 c語言 1 以巨集函式的方法實現,通過文字替換,預編譯階段沒有型別檢查和安全檢查,不安全 include difine sum a,b a b int main 2 用void 泛型實現,如果操作不當,可能發生越界,不安全 void sum void a,int alen,void b,...

C C 有什麼不同 C和C 的區別

1.從機制上 c是面向過程的,但c也可以編寫物件導向的程式 c 是物件導向的,提供了類。但是,c 編寫物件導向的程式 以下簡稱oop 比c容易。2.從適用的方向 場景 高效 遊戲 金融 c適合要求 體積小的,效率搞的場合,如嵌入式 c 適合更上層的,複雜的 linux核心大部分是用c寫的,因為他是系...

B2B B2C C2C 區別介紹

最近在學習建站系統的時候,偶爾我們的老大會說幾個自己所不太了解的名詞 簡稱 所以呢?我就總結了一下,如果有不全面的地方,還請博友們多多指點!b2bb2b 也有寫成btb 是指企業對企業之間的營銷關係,它將企業內部網,通過b2b 與客戶緊密結合起來,通過網路的快速反應,為客戶提供更好的服務,從而促進企...