考虑以下 ANSI C 代码:
int* var1, var2; //line 1
int *var3, var4; //line 2
int * var5, var6; //line 3
int var7, *var8; //line 4
第 1、2 和 3 行功能相同吗?与“*”相关的空格在语法上重要吗? 'var2'、'var4' 和 'var6' 也是指针吗?第 4 行合法吗?
我有 Java 背景,所以我已经习惯了它的冗长和面向对象。因此,现在很难理解 C 的原性。
最佳答案
是的,第 1 行到第 3 行是等效的。
不,var2
、var4
和 var6
不是指针。这就是为什么在 C 中通常首选第二行,因为它可以更好地显示星号与变量(在您的情况下为 var3 )的关联。
最后,是的,第 4 行是有效的,并将 var7
声明为普通 int
变量,将 var8
声明为指向 的指针>int
.
关于c - C 中的变量声明空间敏感性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47490143/