在声明为数组数组的参数中,C标准定义
static
只在第一个维度,这是你唯一需要它的维度。
C 2018 6.7.6.2 1说:
可选类型限定符和关键字static应仅出现在具有数组类型的函数参数的声明中,然后仅出现在最外层的数组类型派生中。
静止的
是有用的,因为最外面的尺寸否则会丢失。参数声明
int a[3][6]
自动调整为
int (*a)[6]
,是指向6的数组的指针
int
,但没有关于6个数组的数量的信息
int
都在那个位置。
int a[static 3][6]
也调整为
int(*a)[6]
但附加的信息是,应该至少有3个6的阵列
int
在那个位置。
没有必要
静止的
因为关于第二维度的信息没有丢失。
int [6]
是一个完整的类型;它是一个6的数组
int
。如果我们有一个指向一个6的数组的指针
int
,共有6个
int
那里如果我们有一个指向三个6数组的指针
int
,有3个阵列,共6个
int
那里(18
int
全部的