2015-02-06 80 views
0
string *p1 = new string(“hello”); 
string *p2 = new string(“world”); 
string *p3 = new string(“!!!”); 
cout << p1 << ‘ ‘ << p2 << ‘ ‘ << p3 << endl; // print: 0xffa0 0xffb1 0xffd5 
string *m[3] = {p1, p2, p3}; // Σημείωση: 32bit αρχιτεκτονική 
cout << m; // print: 0x1000 
cout << _____m[_____]; // print: 0xffb1 (1 μονάδα) 
cout << &m[1]; // print: ___________________ (1 μονάδα) 
cout << _____m[_____]; // print: !!! (1 μονάδα) 
cout << _____m; // print: hello (1 μονάδα) 
cout << &*m[1]; // print: __________________ (1 μονάδα 

我不知道发生了什么我的输出是所有引用不值!它的一个旧的最后演习我必须填补每个差距,以获得他告诉我的价值。字符串数组和指针

+0

作为一个侧面说明,它可能会更好地使用简单'字符串P1(“你好”)'等等在C++中。 – emlai 2015-02-06 10:41:31

+0

另外'm'不是一个字符串数组。这是一个字符串指针数组。 – emlai 2015-02-06 10:42:28

回答

2
cout << p1 << ‘ ‘ << p2 << ‘ ‘ << p3 << endl 

您可以打印出指针,这些指针实际上是它们指向的变量的地址。

cout << *p1 << ‘ ‘ << *p2 << ‘ ‘ << *p3 << endl 

可能会伎俩。

推荐快捷文献:This

0

COUT < < P1 < <““< < P2 < <““< < P3 < < ENDL;只是打字COUT < < P1总会导致参考,以获得价值使用引用操作*像COUT < < * P1