const 修飾形參與實參

2021-06-11 19:59:42 字數 636 閱讀 3584

最好將const看做引數的一部分,形參和實參保持一致,下面舉個例子來說明形參與實參在const修飾不一致的情況下什麼時候會出錯,什麼時候不會出錯,以及其中的原因。

#include using namespace std;

void string_copy(char *)

int main()

注意以上**,形參是char *,而實參是const char * 型別,這種寫法是編譯不通過的。

形參是char *,那麼在函式內部就是可以改變它指向的內容的,然而我們傳給它的實參是const char *,意味著實參指向的內容不希望被改變,編譯器會檢測到這種矛盾並報錯。

接下來我們交換一下寫法,實參改為char *,形參改為const char*,這樣有沒有問題呢?

#include using namespace std;

void string_copy(const char *)

int main()

實踐證明是可以編譯通過的,因為形參決定了引數指向的內容不能被改變,我們不管是傳const char*還是傳char * 作為實參都能滿足條件,所以不會報錯,但是會報警告,編譯器不建議這種寫法,這樣不容易理解。

形參與實參

形參與實參 函式的形參與實參 引數概念 a abcdef print len a 什麼是形參 def function1 a,b if a b print a else print b 什麼是實參 function1 1,3 引數的傳遞 第一種,最簡單的傳遞 def function a,b if ...

形參與實參

學習了引數那麼我們最先了解就是引數,而引數分為兩種,形參與實參,形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只在函式內部有效。函式呼叫結束返回主呼叫函式後則不能再使用該形參變數。實參可以是常量 變數 表示式 函式等,無論實參是何種型別的量,在進行函式呼...

形參與實參

實參 argument 全稱為 實際引數 是在呼叫時傳遞給函式的引數.實參可以是常量 變數 表示式 函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的 值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。形參 parameter 全稱為 形式引數 由於它不是...