C语言数组大小

  • Post author:
  • Post category:其他


在数组进行集成初始化时(上一篇中有相关内容,链接在下方),数组长度会由编译器设定。



数组的初始化



https://blog.csdn.net/weixin_52133421/article/details/122850510?utm_source=app&app_version=5.0.1&code=app_1562916241&uLinkId=usr1mkqgl919blen


如果需要得到数组的大小,可以通过sizeof函数。sizeof(array)可以得到array数组所占的内容大小,单位为字节(Byte),sizeof(array[i])可以得出单个元素所占内容大小。所以可以通过sizeof(array)/sizeof(array[i])得出数组的长度。

源代码:

#include<stdio.h>
int main()
{
	int i;
	int number;
	int array[] = {1,3,5,4,7,0,4,6,9,12,16,23};
	printf("数组总字节数:%lu\n", sizeof(array));
	printf("数组单个元素字节数:%lu\n", sizeof(array[0]));
	number = sizeof(array) / sizeof(array[0]);     //number即为数组长度
	printf("数组长度:%d\n", number);
	for (i = 0; i < number; i++)
		printf("%d  ", array[i]);
	return 0;
}

测试结果:

数组总字节数:48

数组单个元素字节数:4

数组长度:12

1  3  5  4  7  0  4  6  9  12  16  23

这样得出数组长度的最大好处在于一旦修改数组中初始的数据,不需要再修改遍历的代码,例如其中的遍历数组操作。

for (i = 0; i < number; i++)
    printf("%d  ", array[i]);

无论数组中的数据怎么修改,数组长度始终是正确的。