我讀儘管這:const char * const versus const char *?爲什麼不strlen的(..)預計爲const char * const的海峽,而不是爲const char *
在string.h
,strlen被定義爲:
size_t strlen (const char * str);
如果我正確地理解這個,strlen需要一個指向const的char的指針。它不應該是:
size_t strlen (const char* const str);
這將確保strlen不能修改指針指向一個不同的指針?
或者,這樣的話:
由於海峽指針會按值傳遞給strlen的,功能上的任何改變這個指針不會改變源指針,因此它的好..
??
'strlen()'無法修改您傳入的指針,無論如何;它會收到一份副本。這隻有在你傳入指針指針時纔有意義。 – cdhowie 2012-07-26 17:03:15
這些函數具有相同的簽名。另見:http://stackoverflow.com/questions/11645751/why-are-const-qualifiers-in-function-arguments-used-for-overloading-resolution http://stackoverflow.com/questions/4212932/defining- a-function-with-different-signature http://stackoverflow.com/questions/3682049/functions-with-const-arguments-and-overloading等等。 – 2012-07-26 17:31:11