如何在不使用任何内置(标准)函数的情况下找到整数数组的大小?这是我的尝试:
.read
答案 0 :(得分:8)
在数组中发送数据的最常见方式是通过空终止数组。 (但是,如果0
是数组中的有效整数,这可能对您不起作用。例如,您可能希望使用-1
。)
int array_len(int *arr)
{
const int TERMINATOR = 0; // or -1, as the case may be
int i = 0;
while (arr[i] != TERMINATOR)
i++;
return i;
}
但是,更好的方法可能只是发送仅数组,而不是每次传递数据时发送数组和一个长度。这样,您不需要像这样调用函数来获取各种函数中的数组长度。
答案 1 :(得分:4)
你不能。
超出数组范围的行为未定义。
您可以使用某种值作为终结符对数组建模,但这很难实用。将大小作为额外参数传递,如果您真的只想要一个参数,请使用Documents
。
答案 2 :(得分:3)
C不会用它存储数组的大小。在C字符串中,NULL终止符用于确定数组的大小,但这是常规。将大小作为参数传递给函数,或者选择一个被视为数组末尾的值并搜索它。
答案 3 :(得分:1)
在你while
循环条件 -
while(a[i]!=NULL)//replace NULL with such value which is unique and not used in your array.
使用-1
或其他内容。
您可以考虑使用'\0'
而不是NULL
,但如果您的数组之间也有0
,那么循环也会停止。 (如果0
在数组中,请不要使用'\0'
)。