首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

字符串是怎么存储的

2013-03-10 
字符串是如何存储的string ttt(A) char *p (char *)(&ttt)Memo1-Lines-Add(*p) Memo1-Lines-Ad

字符串是如何存储的
string ttt("A") ;

   char *p = (char *)(&ttt);

   Memo1->Lines->Add(*p) ;
   Memo1->Lines->Add(*(p+1)) ;
   Memo1->Lines->Add(*(p+2)) ;
   Memo1->Lines->Add(*(p+3)) ;

运行结果如下:
255
195
210
119

毫无规律可言,字符串在内存中到底是怎么存储的?
[解决办法]
string是一个类,ttt的地址,并不是字符串存储的地址。
[解决办法]
String是对字符串的封装,打个比方,类似于:
class MyString {
public :
    MyString();
    char *c_str() { return m_pchBuf; }
    .....
private :
    char *m_pchBuf;
};
其中成员变量m_pchBuf才指向真正的字符串在内存中的位置,加入定义一个MyString变量
MyString a;
那么&a只是这个变量自身的位置,函数c_str()才返回字符串的位置。

热点排行