1.求char类型数组
#include<stdio.h>
//库函数strlen 返回数组长度
char arr[10];
int length = strlen(arr);//接受数组长度
注意: strlen只能用char*做参数,且必须是以''\0''结尾的!
2. sizeof()运用bug , C6384警告
运行发现sizeof(arr)作为实参传递使用时无法计算arr的总字节
只有arr数组写在运用sizeof(arr)同一函数中的直接使用才能计算
类似局部变量,【sizeof(arr)/sizeof(a[0]) 】 当数组arr与该语句在同一函数内有效
(若有循环要在同一循环内有效)
#define length 10//法一
int arr[10];
int arr_length = sizeof(arr)/sizeof(a[0]);//法二
#define length 10 //数组初始化长度自定义
最终通过不断尝试发现较为有效方法用于解题:
解决方法:C语言没有直接求数组长度的,在解题中,可直接写自己创的长度常量,或者宏定义【#define length 数组初始化长度 】 来代替常量数值
总结:【 sizeof(a)无法得到数组的大小。为什么会这样?因为把数组作为参数传递给函数时,实际上只有数组的首地址作为指针传递给了函数。换句话说,在函数
定义中的int a[]等价于int *a。在只有地址信息的情况下,是无法知道数组里有多少个元素
的。】