cout<<(*head_ptr).data()
和
cout<<*head_ptr.data()
它们是相同的还是不同的?
它们不一样。
cout<<(*head_ptr).data()
does:
- 解调
head_ptr
- call
data()
for it - 传递给
cout<<
cout<<*head_ptr.data()
does:
- 呼叫
data()
forhead_ptr
- 废弃它
- 传递给
cout<<
基本概念是操作符的优先级。操作符优先级详见http://en.cppreference.com/w/cpp/language/operator_precedence