数组是 c 中的数据类型吗?如果是,我们可以像在结构体中那样创建数组类型的变量,枚举。
int arr[10] ;//is this arr is a data type of 10 ints
数组是 c 中的数据类型吗?如果是,我们可以像在结构体中那样创建数组类型的变量,枚举。
int arr[10] ;//is this arr is a data type of 10 ints
数组是C中的数据类型吗?
没有进一步说明的“数组”不是单独的数据类型,但是一旦指定了它的大小和元素类型,它就变成了一种数据类型。换句话说,您不能定义一个采用“任何东西的数组”或“没有特定大小的特定类型的数组”的类型,但您可以定义一个数据类型,它是一个类型为 的N
项目数组T
。
如果是,我们可以像在
struct
s,中那样创建数组类型的变量enum
吗?
int arr[10] ;//is this arr is a data type of 10 ints
是的。您可以通过检查来判断sizeof(arr)
:它将是 的十倍sizeof(int)
。
当然,数据类型的数组是另一种数据类型。
您可以执行以下操作:
typedef int intarr3_t[3];
intarr3_t intarr = {1, 2, 3};
derived type
如果我们看一下C99 草案标准部分6.2.5
Types第20段,数组就是一个(强调我的):
可以从对象、函数和不完整类型构造任意数量的派生类型,如下所示:
—数组类型描述了一组连续分配的具有特定成员对象类型的非空对象,称为元素类型。36) 数组类型的特征在于它们的元素类型和数组中的元素数量。数组类型被称为从其元素类型派生,如果其元素类型是 T,则该数组类型有时称为“T 数组”。从元素类型构造数组类型称为“数组类型派生”。
您可以创建结构和枚举的数组,唯一的例外在脚注36中注明:
由于对象类型不包括不完整类型,因此无法构造不完整类型的数组。
是的,它是一种数据类型,是的,您可以制作其中的一些。
为了更清楚,您可以创建一个数组的 typedef。
typedef char MyType_t [10];
将使 MyType_t 成为 10 个字符的数组:
MyType arrayOfTenChars;
数组的概念与派生类型有关。然后是和等数据类型。array of int
array of 10 ints