有没有区别
static int * pn;
和
int static * pn;
基本上我正在寻找指向静态变量的指针和指向某个变量的静态指针之间的区别,并且不确定上述两个声明是否对应于它们。
在 C 中没有区别,但不鼓励使用第二种形式。
(C99,6.11.5p1)“存储类说明符在声明中的声明说明符开头以外的位置是一个过时的功能”
不,没有区别。在这里,声明说明符序列是static int
orint static
并且说明符在声明说明符序列中的顺序无关紧要。您的两个声明都具有“指向 int 的指针”类型。
你可以做其他奇怪的事情,比如int static unsigned const* pn;
如果你足够讨厌别人。我写了一个涵盖该主题的问题/答案。