*pointervar 和 (*pointervar) 之间的区别

问题描述 投票:0回答:1

此页面我找到了以下代码:

//insert a new node in front of the list
void push(struct Node** head, int node_data)
{
   /* 1. create and allocate node */
   struct Node* newNode = new Node;
 
   /* 2. assign data to node */
   newNode->data = node_data;
 
   /* 3. set next of new node as head */
   newNode->next = (*head);
 
   /* 4. move the head to point to the new node */
   (*head) = newNode;
}

现在我想知道为什么第三行

*head
在括号里?
*head
(*head)
和有什么不一样?

c++ pointers linked-list
1个回答
1
投票

*head 和 (*head) 和有什么不一样?

不需要

*head
周围的括号。您可以删除括号。其效果与括号相同。

通常,我们显式地在表达式两边加上括号,以规避/覆盖运算符优先级规则。

但是在你的例子中有或没有括号没有区别.

© www.soinside.com 2019 - 2024. All rights reserved.