在c语言中求数组长度可以用strlen()函数和sizeof()函数
但是不同的是,strlen()函数是用来求一个字符串的长度,不能用来求int类型的数组长度,只能求char类型的数据。
char arr1[10] = {'a', 'b', 'c'}; char arr2[] = {'a', 'b', 'c'};
arr1的结果就是3
arr2的结果是随机的,因为在这里没有给数组个数,并且大括号赋值,没有'/0'结束位。因此,strlen会在内存中一直计数,一直到遇见0为止。
如果用strlen()函数求int类型的,你会发现不能使用,所得出的结果是错误的。这时候就应该用sizeof()函数来求数组长度。
sizeof()函数:获取变量字节长度并返回
int arr1 [10] = {0};
int arr2 [10] = {1, 2, 3, 4, 5};
int len1 = sizeof(arr1) / sizeof(arr1 [0]);
int len2 = sizeof(arr2) / sizeof(arr2 [0]);
printf("length arr1 = %d\n", len1);
printf("length arr2 = %d\n", len2);
这里用sizeof(arr1)求出数组总长度,然后除以数组单个数值的字节,获得数组长度。