我想知道无论我的输入长度如何,sizeof函数如何返回8
int main(){
string input;
getline(cin,input);
cout << "size of input is " << sizeof(input) << endl; //I am guessing
//it returns the size of a pointer because my OS is 64 bits.
return 0;
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是隐式转换发生在哪里?这是getline的声明,
istream& getline ( istream& is, string& str );
Run Code Online (Sandbox Code Playgroud)
此外,这种转换总是发生,即从指针类型的任何东西,是否有一般情况?谢谢.
chr*_*ris 13
sizeof给你大小的字节数.std::string包含指向实际数据的指针.无论指针的大小如何,单个指针的大小都保持不变.这与其他因素相结合,使您的总大小为8.
你正在寻找任std::string::size或std::string::length用于字符串的实际长度.如果您正在寻找一个函数来检索任何以null结尾的C-String的大小,请使用strlen().
| 归档时间: |
|
| 查看次数: |
2062 次 |
| 最近记录: |