?
char a[] = "hello";
string s = "hello";
cout<<sizeof(a)<<endl;
cout<<sizeof(s)<<endl;
cout<<sizeof(s.c_str())<<endl;
輸出為
6
32
4
最后一個c_str返回的是char*,所有指針的長度都為4。sizeof(s)為什么為32?
查了一下,因為string是一個對象,這里相當于求一個對象的空間大小,具體內容應該是指針指向,動態分配。所以無論s有多少,返回的都是32.
?