C 多个单行声明

2024-02-25

当我在一行上声明多个变量时会发生什么?例如

int x, y, z;

全部都是整数。问题是下面语句中的 y 和 z 是什么?

int* x, y, z;

都是int指针吗?


Only x是一个指向 int 的指针;y and z是常规整数。

这是 C 声明语法中让一些人感到困惑的一个方面。 C使用a的概念声明者,它介绍了正在声明的事物的名称以及类型说明符未提供的附加类型信息。在声明中

int* x, y, z;

声明者是*x, y, and z(这是 C 语法的一个意外,你可以写成int* x or int *x,这个问题是我推荐使用第二种风格的几个原因之一)。的完整性x, y, and z由类型说明符指定int,而指针性x由声明符指定*x(IOW,表达式*x有类型int).

如果您希望所有三个对象都是指针,您有两种选择。您可以将它们显式声明为指针:

int *x, *y, *z;

或者您可以为 int 指针创建 typedef:

typedef int *iptr;
iptr x, y, z;

请记住,在声明指针时,*是变量名称的一部分,而不是类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C 多个单行声明 的相关文章

随机推荐