读书人

string类型有关问题

发布时间: 2012-11-14 10:12:19 作者: rapoo

string类型问题
string s="asdfsdf";

&s[0]不是应该是s首元素的地址吗?

可是cout << &s[0] ;输出的是asdfsdf

[解决办法]
cout<<在作怪 知道函数重载把? cout每次输出都要重载 所以你输出的结果就是字符串
[解决办法]
cout流的工作原理就是找到string的首地址,然后输出整个字符串啊,所以你把string的首地址取出来放到cout流里面,肯定就是输出完整的字符串
[解决办法]
&s[0]是一个char*指针,它的值是s首元素的地址
cout重载了<<操作符,其中对于char*类型的输入,重载为输出该指针指向的字符串

个人不建议刚入门的程序员使用cin和cout,因为它们比刚入门的程序员要智能得多
推荐scanf和printf,严格按照格式控制输入输出
[解决办法]

探讨
&s[0]是一个char*指针,它的值是s首元素的地址
cout重载了<<操作符,其中对于char*类型的输入,重载为输出该指针指向的字符串

个人不建议刚入门的程序员使用cin和cout,因为它们比刚入门的程序员要智能得多
推荐scanf和printf,严格按照格式控制输入输出

[解决办法]
推荐你用c_str() 不要用&s[0] 这么丑陋的东西。。。

读书人网 >C++

热点推荐