c - C 中的变量声明空间敏感性

标签 c pointers ansi-c

考虑以下 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 行是等效的。

不,var2var4var6 不是指针。这就是为什么在 C 中通常首选第二行,因为它可以更好地显示星号与变量(在您的情况下为 var3 )的关联。

最后,是的,第 4 行是有效的,并将 var7 声明为普通 int 变量,将 var8 声明为指向 的指针>int.

关于c - C 中的变量声明空间敏感性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47490143/

相关文章:

macos - Swift 中来自 CGImage 的 RGB 数据

c - 移动指针以便以不同的顺序打印

c - 此代码是否包含未定义的行为或隐藏的错误?我错过了什么吗?

arrays - Int 变量从 void 返回后神秘地改变了值

c - 表达式如何求值?

c - 如何正确地将 CSV 从文本文件加载到 C 中的结构?

c - 如何在C中的自定义函数中使用scanf

c - C中的段错误

c++ - 指针深拷贝的 vector

c - 我试图从函数返回一个指针?但我无法取回该指定地址的值(value)