我读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