我讀the following text from Stanford's Programming Paradigms class,我注意到,當筆者使用string類的構造函數的函數調用,看起來像這樣:小學C++類型混淆
string::string(const char* str) {
initializeFrom(str, str + strlen(str));
}
如果initializeFrom函數有兩個char *參數,第二個參數怎麼會傳遞一個(char * + int)到一個char *並讓它正常工作?類型系統如何解釋這個陳述?
在此先感謝。
'strlen()'實際上返回一個'size_t',而不是'int'。其中一個重要的區別是'size_t'是一個無符號類型,即它只能保持正數。這是有道理的 - 字符串長度可以是0,1或30000個字符,但從不是-7。 – MSalters 2010-02-25 08:54:56