如何在C中创建一个函数来获取数组的大小? 函数和数组不属于同一作用域。 例如:
int func(int arr[]);
int main(){
int arr[5];
}
int arr_length(int arr[]){
int length = sizeof(arr)/sizeof(int);
return length;}
上面的函数的问题在于它将 arr 视为指针,因此它具有指针的大小
你正在做的事情表明了对数组在 C 中如何工作的误解。
在 C 中,数组只不过是指向第一个元素的指针。没有描述其长度的关联数据 - 你,程序员,需要提供它。
这意味着您:
struct
或class
),以聚合的方式将两部分数据组合在一起请注意,C 中的某些类型,例如
char *
(“字符串”)是 null 终止的,这意味着它们用特殊字符表示数组的结尾。 \0
,其字面值为零 (0)。字符串能够以这种方式工作,因为字面值 0 不是有效的 ASCII 字符 - 或者至少它作为“空字符”具有特殊含义。