小弟我凌乱了!关于C++中的char*
我凌乱了!关于C++中的char*!求助!
如代码所示,list容器里面放的是char*,也就是指针吧?那么我用迭代器访问list的元素,应该显示的是指针的值吧?为什么结果是指针所指的字符串的值呢??书上翻不到答案,求解啊!
------解决方案--------------------
要打印指针值,把指针cast成void *。
cout << static_cast<void*>(*iter) << endl;
------解决方案--------------------
楼主可回头看下字符数组那一块的知识~ ~
- C/C++ code
#include <iostream> #include <list> using namespace std; int main() { char* a[]={"aaaa", "bbbb", "cccc"}; list<char*> clst(a,a+3); for (list<char*>::iterator iter = clst.begin(); iter != clst.end(); iter++) { cout << *iter << endl; } return 0; }
如代码所示,list容器里面放的是char*,也就是指针吧?那么我用迭代器访问list的元素,应该显示的是指针的值吧?为什么结果是指针所指的字符串的值呢??书上翻不到答案,求解啊!
------解决方案--------------------
要打印指针值,把指针cast成void *。
cout << static_cast<void*>(*iter) << endl;
------解决方案--------------------
楼主可回头看下字符数组那一块的知识~ ~