程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++形參中const char * 與 char * 的區別

C++形參中const char * 與 char * 的區別

編輯:C++入門知識

  在函數調用時,我們經常看見一個函數的接受參數為(const char *);

  例如strlen()函數,它的定義為:

  *

  那麼將形參設置為const的到底有什麼好處呢?網絡上經常的回答是:這樣將把形參限定為常量,使得我們不能修改它。總感覺這種說法似乎是明白了,但再仔細的想下,總覺得少點什麼。

  在我看來,這樣做的好處有2點:

  第一,通過限定實參的修改,將運行期錯誤提前至編譯器,這樣就能夠將不發生錯誤的保障由人變為機器,更可靠。這種說法比網上流傳的“const把形參限定為常量,使得我們不能修改它”說法更深入也更根本,更容易讓人印象深刻!
  比如C++中,將堆區內存釋放放入到析構函數中,就是為了實現這種保障。讓機器去自動實現,而不是讓一個人去發誓說:“我能保證所有的資源都被釋放”。  ----引用來自 Matrix_R

  第二,擴大了該函數的參數的接收范圍,使得函數更具通用性。

從下邊這個例子中,我們可以看出這兩點好處;寫一個函數length(),實現與strlen()相同的功能,然後進行調用,代碼如下:

#include <><stdio.h><tchar.h><iostream>
  length( * count =  (;*s++ !=;count++ _tmain( argc, _TCHAR* str1[] = 
); 

     *s  = 

     

  上面程序可以正確的編譯運行,並且輸出3行“common  length:16”。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved