指向静态变量的指针和指向某个变量的静态指针之间的区别

Difference between a pointer pointing to a static variable, and a static pointer pointing to some variable

本文关键字:变量 指针 静态 之间 区别      更新时间:2023-10-16

之间有什么区别吗

static int * pn;

int static * pn;

基本上,我在寻找指向静态变量的指针和指向某个变量的静态指针之间的区别,不确定以上两个声明是否对应。

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

(C99,6.11.5p1)"在声明中放置存储类说明符而不是声明说明符的开头是一种过时的功能">

没有,没有区别。这里,声明说明符序列是static intint static,并且声明说明符序列中说明符的顺序无关紧要。您的两个声明都具有类型"pointer to int"。

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