0

在这本书中,我从学习 C++ 开始,我开始学习指针。在它给出的示例中,它并没有真正指定何时使用成员函数取消引用指针。

cout << "Assigning &str to pStr\n";
string str = "score";
string* pStr = &str; //pointer to string object
cout << "str is: " << str << "\n";
cout << "pStr is: " << *pStr << "\n";
cout << "(*pStr).size() is: " << (*pStr).size() << endl;
cout << "pStr->size() is: " << pStr->size() << "\n";

为什么在倒数第二行 pStr

(*pStr).size()

在最后一行需要取消引用

 pStr->size()

pStr 没有

4

1 回答 1

3

其实有两种说法:

(*pStr).size();
pStr->size();

正在做同样的事情。在这两种情况下,指针都会被取消引用。区别只是句法。这就是定义语言的方式。->运算符可以从语言中删除而不会丢失任何功能。这是一种语法便利。

于 2013-06-23T07:11:38.350 回答