不使用内置函数计算数组大小

时间:2015-08-04 15:28:21

标签: c

如何在不使用任何内置(标准)函数的情况下找到整数数组的大小?这是我的尝试:

.read

4 个答案:

答案 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')。