我想理解为什么在同一行上声明更多具有相同数据类型的指针时,为什么必须在每个标识符之前添加一个星号。
Here是我从那里读取的信息>
其他可能引起您注意的是以下行:
int * p1,* p2;
这声明了上一个示例中使用的两个指针。但是请注意,每个指针都有一个星号(*),以便两个指针都具有int *类型(指向int的指针)。 这是优先规则所必需的
。请注意,如果代码是:int * p1,p2;
p1的确为int *类型,但p2的为int类型。对于这个目的,空间根本不重要。但是无论如何,对于大多数想在每个语句中声明多个指针的指针用户而言,只需记住为每个指针放置一个星号就足够了。甚至更好:对每个变量使用不同的语句。
问题
:这里使用什么规则,这是什么优先级?它是关于逗号还是星号?我不知道。我想理解为什么在同一行上声明更多具有相同数据类型的指针时,为什么必须在每个标识符之前添加一个星号。这是我从另一本书中读取的内容,......>
没有任何优先级规则。简单声明的语法看起来像
decl-specifier-seq init-declarator-listopt ;
没有优先级规则本身
这里没有运算符优先级。实际上也没有运算符。运算符对表达式进行运算,但这是一个声明。