在一条指令中声明更多指针的运算符优先级

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

我想理解为什么在同一行上声明更多具有相同数据类型的指针时,为什么必须在每个标识符之前添加一个星号。

Here是我从那里读取的信息>


其他可能引起您注意的是以下行:

int * p1,* p2;

这声明了上一个示例中使用的两个指针。但是请注意,每个指针都有一个星号(*),以便两个指针都具有int *类型(指向int的指针)。 这是优先规则所必需的

。请注意,如果代码是:

int * p1,p2;

p1的确为int *类型,但p2的为int类型。对于这个目的,空间根本不重要。但是无论如何,对于大多数想在每个语句中声明多个指针的指针用户而言,只需记住为每个指针放置一个星号就足够了。甚至更好:对每个变量使用不同的语句。


operator precedence

问题

:这里使用什么规则,这是什么优先级?它是关于逗号还是星号?我不知道。

我想理解为什么在同一行上声明更多具有相同数据类型的指针时,为什么必须在每个标识符之前添加一个星号。这是我从另一本书中读取的内容,......>

c++ pointers operator-precedence
3个回答
0
投票

没有任何优先级规则。简单声明的语法看起来像

decl-specifier-seq init-declarator-listopt ; 

0
投票

没有优先级规则本身


0
投票

这里没有运算符优先级。实际上也没有运算符。运算符对表达式进行运算,但这是一个声明。

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