在书中,我正在学习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没有
答案 0 :(得分:3)
事实上,有两个陈述:
(*pStr).size();
pStr->size();
正在做同样的事情。在两种情况下都取消引用指针。区别仅在于语法。这是语言的定义方式。可以从语言中删除->
运算符,而不会丢失任何功能。这有点语法上的便利。