关于sizeof()和string的c_str()和length()函数,给像我一样的初学者,有兴趣的看一眼
sizeof()是求某种系统自带类型数据 或用户自定义类的大小的函数比如:
int i;
double d;
则,在我的机器上,sizeof(i)和sizeof(int)的值都是4
sizeof(d)和sizeof(double)的值都是8
由于字符串应用频繁,所以系统有定义好的string类,使用起来很方便
但是如果你试一下:
string s1 = "I AM CHINESE, I LOVE MY COUNTRY ,I LOVE MY PEOPLE";
string s2 = "I AM PROUD OF IT";
则sizeof(string),sizeof(s1),sizeof(s2),它们的值都是16
如果你不明白,只要看一下string类的定义,你就明白了。因为你用sizeof(string),它的结果是string类里的所有
数据成员所占空间之和。string类里有一个指针,指向一片内存空间的首地址,那里才存放你的字符串。字符串不是
放在string类里面的,string累里只有指向该内存的指针。
string类有好多成员函数,比如length(),是用来返回字符串的长度的
string s = "fajlksdjflkjsdkl”;
s.length();
还有c_str(),很有用,是返回string对象的首地址,返回类型是 const char *。
这就是我的第一篇帖子啦,见笑了。