数据类型在c中混淆

时间:2013-09-16 15:58:55

标签: c abstract-data-type

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

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

5 个答案:

答案 0 :(得分:1)

  

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

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

  

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

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

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

答案 1 :(得分:0)

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

您可以执行以下操作:

typedef int intarr3_t[3];

intarr3_t intarr = {1, 2, 3};

答案 2 :(得分:0)

数组是derived type,如果我们查看C99 draft standard部分6.2.5 类型 20 说(强调我的) :

  

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

     
    

- 数组类型描述了一个连续分配的非空对象集     特定的成员对象类型,称为元素类型.36)数组类型是     以其元素类型和数组中元素的数量为特征。一个     数组类型据说是从它的元素类型派生的,如果它的元素类型是T,那么     数组类型有时被称为''T'数组'。从中构造数组类型     元素类型称为“数组类型派生”。

  

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

  

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

答案 3 :(得分:0)

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

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

typedef char MyType_t [10];

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

MyType arrayOfTenChars;

答案 4 :(得分:0)

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