C前處理器、作用域、static、const以及記憶體管理

2020-08-13 07:29:32

1.4.3 修飾函數參數與返回值

cosnt既可以修飾函數返回值、各參數、函數自身。

  • const 修飾返回值
    返回值有三種:值返回、指針返回、參照返回。
    對於內部數據型別來說,返回值是否是常數沒有區別。當時自定義的數據型別的時候,有時候不是const返回,會造成一定的困擾。
    對於指針而言,注意不能返回指向區域性棧變數的指針,返回時是無效的。指向堆或者data或者bss區時可以的。
  • const 修飾函數 參數
    參數以值傳遞的時候,加const 意義也不大。主要還是對於地址。因爲假如傳遞地址的時候,不加const,那麼就不能傳遞指向const的指針。

1.4.4 const 在類中的應用

  • const成員函數
  • 如果兩個成員函數只是常數性不同,可以被過載。
  • const 數據成員
    常數數據成員必須在 建構函式的成員初始化列表中進行初始化。

1.5 記憶體管理與釋放

1.5.1 c語言記憶體操作函數

c語言中是 malloc free
C++ new delete

1.5.2 C++記憶體管理

  • 動態建立物件的初始化
    int* p1=new int //無初始化
    int* p1=new int(); //初始化爲0
    但對於類型別的物件,不管有沒有初始化,都會呼叫預設建構函式。
  • const物件的動態分配和回收