括号和指针节点



cout<<(*head_ptr).data()

cout<<*head_ptr.data()

它们是相同的还是不同的?

它们不一样。

cout<<(*head_ptr).data() does:

  1. 解调head_ptr
  2. call data() for it
  3. 传递给cout<<

cout<<*head_ptr.data() does:

  1. 呼叫data() for head_ptr
  2. 废弃它
  3. 传递给cout<<

基本概念是操作符的优先级。操作符优先级详见http://en.cppreference.com/w/cpp/language/operator_precedence

最新更新