string str("hello");
const char *p = str.c_str();
char *pp = &str[0];
unsigned int num = (unsigned int)p;
cout << "0x" <<hex << num << endl;
num = ( unsigned int )pp;
cout << "0x" <<hex << num << endl;
cout << &str[0] << endl;
cout << &str << endl;
其实指针p和指针pp的地址是一样的,但是&str和p和pp的值是不一样的,不妨这么理解,因为&str是取string这个类的地址,而p和pp都是取的string定义的字符串的第一个元素的地址,
所以&str和p以及pp是不一样的。
关于string的一点思考
最新推荐文章于 2021-04-11 18:05:00 发布