-2

数组是 c 中的数据类型吗?如果是,我们可以像在结构体中那样创建数组类型的变量,枚举。

 int arr[10] ;//is this arr is a data type of 10 ints
4

5 回答 5

1

数组是C中的数据类型吗?

没有进一步说明的“数组”不是单独的数据类型,但是一旦指定了它的大小和元素类型,它就变成了一种数据类型。换句话说,您不能定义一个采用“任何东西的数组”或“没有特定大小的特定类型的数组”的类型,但您可以定义一个数据类型,它是一个类型为 的N项目数组T

如果是,我们可以像在structs,中那样创建数组类型的变量enum吗?

int arr[10] ;//is this arr is a data type of 10 ints

是的。您可以通过检查来判断sizeof(arr):它将是 的十倍sizeof(int)

于 2013-09-16T16:01:46.567 回答
0

当然,数据类型的数组是另一种数据类型。

您可以执行以下操作:

typedef int intarr3_t[3];

intarr3_t intarr = {1, 2, 3};
于 2013-09-16T16:03:03.397 回答
0

derived type如果我们看一下C99 草案标准部分6.2.5 Types20段,数组就是一个(强调我的):

可以从对象、函数和不完整类型构造任意数量的派生类型,如下所示:

数组类型描述了一组连续分配的具有特定成员对象类型的非空对象,称为元素类型。36) 数组类型的特征在于它们的元素类型和数组中的元素数量。数组类型被称为从其元素类型派生,如果其元素类型是 T,则该数组类型有时称为“T 数组”。从元素类型构造数组类型称为“数组类型派生”。

您可以创建结构和枚举的数组,唯一的例外在脚注36中注明:

由于对象类型不包括不完整类型,因此无法构造不完整类型的数组。

于 2013-09-16T16:03:43.330 回答
0

是的,它是一种数据类型,是的,您可以制作其中的一些。

为了更清楚,您可以创建一个数组的 typedef。

typedef char MyType_t [10];

将使 MyType_t 成为 10 个字符的数组:

MyType arrayOfTenChars;
于 2013-09-16T16:04:09.950 回答
0

数组的概念与派生类型有关。然后是和等数据类型。array of intarray of 10 ints

于 2013-09-16T16:09:21.050 回答