sizeof() 之 数组

时间:2022-04-05 20:08:42

在平时的编程中,我们会经常用到数组,并且需要知道数组的长度,有时我们可以明确的知道数组的长度,但有时并不,这时,可以借用sizeof(),来获得数组的长度,如下:

arrayLength = sizeof(array) / sizeof(array[0]);

在使用sizeof() 获得数组长度时,需要注意,如果数组array 和 sizeof() 的使用 是在同一个文件中,那么array在定义时,不需要明确数组长度;如果他们在不同的文件中时,则array在定义时必须明确长度,否则会报错 “ incomplete type is not allowed ”。

例:

a.c 文件中定义了数组array

int array[] = {0,1,2,3,4,5,6,7,8,9};

在a.c文件中我们可以用sizeof() 来获得array的长度

arrayLength = sizeof(array) / sizeof(array[0]);

或者

arrayLength = sizeof(array) / sizeof(int);

如果此时我们在b.c文件中使用同样的方法来获得array的长度,那么在编译时会报"  incomplete type is not allowed "错误