指向静态变量的指针与指向某个变量的静态指针之间的差异

Hai*_*ang 6 c c++

两者之间有什么区别吗?

static int * pn;
Run Code Online (Sandbox Code Playgroud)

int static * pn;
Run Code Online (Sandbox Code Playgroud)

基本上我正在寻找指向静态变量的指针和指向某个变量的静态指针之间的区别,并且不确定上述2个声明是否与它们对应.

oua*_*uah 7

在C中没有区别,但不鼓励使用第二种形式.

(C99,6.11.5p1)"在声明中声明说明符开头之外的存储类说明符的放置是一个过时的功能"


Jos*_*eld 4

不,没有区别。这里,声明说明符序列是static intorint static并且声明说明符序列中说明符的顺序并不重要。您的两个声明的类型都是“指向 int 的指针”。

你可以做其他奇怪的事情,比如int static unsigned const* pn;如果你足够讨厌别人。我写了一个涵盖该主题的问题/答案