2013-09-16 79 views
-2

数组是c中的数据类型吗? 如果可以,我们可以在结构体中创建数组类型的变量,enum。数据类型混合在c中

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

http://www.cprogramming.com/tutorial/c/lesson8.html –

回答

0

数组是一个derived type,如果我们看一下C99 draft standard部分6.2.5类型款说(重点煤矿):

任何衍生类型可以从对象,函数和 完整的类型,如下所示:

- 数组类型描述了一种连续地分配非空的对象集与 特定成员对象类型,称为元件type.36)数组类型为 特征在于它们的元素类型以及数组中的元素的数量。一个 数组类型据说是从它的元素类型派生出来的,如果它的元素类型是T,那么 数组类型有时被称为''T''数组。数组类型从 构造一个元素类型被称为''数组类型派生''。

可以创建结构和枚举的阵列中,唯一的例外是在脚注注意到:

由于对象类型不包括不完全类型,不完全型的阵列不能建。

1

是阵列在C语言的数据类型?

“阵列”,没有进一步的规范不是一个单独的数据类型,但一旦你指定它的大小和它的元件的类型,它成为一个数据类型。换句话说,你不能定义一个需要“任何数组的数组”或“没有特定大小的特定类型的数组”的类型,但是你可以定义一个N类型的数组的数据类型T

如果是的话,我们可以创建数组类型的变量在struct S,enum

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

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

+0

“数组”不是数据类型; “int int数组”和“size 10 ints数组”是数据类型。 – mpez0

+0

@ mpez0编辑。谢谢! – dasblinkenlight

0

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

你可以这样做:

typedef int intarr3_t[3]; 

intarr3_t intarr = {1, 2, 3}; 
0

是的,它是一种数据类型,是的,你可以使他们的数量。

为了使它更清晰,你可以做一个数组的typedef。

typedef char MyType_t [10]; 

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

MyType arrayOfTenChars; 
+1

在MyType_t中,是下划线t是必不可少的。 – mrigendra

+0

不,实际上它应该只保留用于图书馆类型,这只是我已经做了20年的方式。 – Neil

0

阵列的构思涉及一种派生类型。然后有数据类型,例如array of intarray of 10 ints