【发布时间】:2014-07-20 08:01:12
【问题描述】:
我有一个包含 10 个元素的数组。该数组存储了一些信息,但最后的信息以符号“END”(即-1)结束。
例如:
array[0] = 1;
array[1] = 1;
array[2] = 1;
array[3] = 1;
array[4] = 1;
array[5] = 1;
array[6] = END;
所以在这种情况下,长度是 7 而不是 10。
这是我的算法:
for (i = 0; (i < 10)
&& (array[i] != END); i++)
{
;
}
最后 i 包含长度。
是正确的还是有其他方法?
【问题讨论】:
-
像这样硬编码
10不是一个好主意。 -
数组元素的数量(例如
arr)由sizeof arr / sizeof *arr给出。如果将数组传递给函数,则在函数内部它不再是数组(它是指向数组第一个元素的指针)并且表达式不再表示元素的数量。