数组声明

“数组声明”为该数组并指定其元素的类型。 它还可定义元素数。数组的。 与数组类型的变量被视为对数组元素的类型的指针。

语法

  • declaration:
    声明说明符 init 公告列表opt**;**

  • init 公告列表:
    init 声明

    init 公告列表**,** init 声明

  • init 声明:
    声明

    声明 = 初始值设定项

  • declarator:
    指针opt直接 声明

  • 直接声明:
    直接声明 [ 常数表达式opt**]**

因为 常数表达式 是可选的,语法有两种形式:

  • 第一个窗体定义一个数组变量。 在括号内的 常数表达式 参数数组中指定元素的数目。 常数表达式,如果有,则大于零必须具有整型和值。 每个元素都具有 类型说明符给定的类型,可以是除 void的任何类型。 数组元素不能是函数类型。

  • 第二个窗体声明在其他位置定义的变量。 省略了在括号的 常数表达式 参数,但是,不是括号。 ,才会初始化该数组,以前声明为参数或声明它,因为对程序,在其他地方显式定义的数组可以使用此窗体。

以两种形式, 直接声明 为该变量,并能修改变量的类型。 括号 ([]) 后面的 直接声明 修改该声明为数组类型。

类型限定符可以出现在数组类型对象的声明,但是,限定符应用于元素而不是数组。

您可以按照数组声明符声明数组 (“”多维数组) 与括起来的常数表达式列出了以下模式:

type-specifier declarator [constant-expression] [constant-expression] ...

中括号中的每个 常数表达式 定义元素数在给定维中:二维数组有两个括起来的表达式,三维数组有三,依此类推。 ,如果初始化该数组,声明为参数或声明它,因为对程序,在其他地方显式定义的数组可以省略第一个常数。

使用复杂语句之后,可以定义一些指向对象的各种类型,如 解释更复杂的声明所述。

行存储数组。 例如,下面的数组其中包含三列的两行中的每一:

char A[2][3];

第一行的三列由第二行的第三列中,按照。 这意味着最后一个下标快速更改。

若要引用数组中的单个元素,请使用下标表达式,如 后缀运算符所述。

示例

这些示例声明数组声明:

float matrix[10][15];

该二维数组名为 matrix 有 150 个元素,有中的每个 float 类型。

struct {
    float x, y;
} complex[100];

这是结构数组的说明。 此数组有 100 个元素;每个元素都是包含两个成员的结构。

extern char *name[];

此语句声明数组的类型和名称指向 char。 name 的实际定义在其他位置发生。

Microsoft 专用

所需的整数的类型包含数组的最大大小为 size_t的大小。 定义在头文件 STDDEF.H, size_t 与该范围 0x00000000 的 unsigned int 到 0x7CFFFFFF。

特定于 Microsoft 的结尾

请参见

概念

声明和变量声明