如何检查数组位置是否存在?

时间:2011-04-24 16:41:17

标签: c

char X[3];

如何检查数组X[position]是否存在? 例如:

if (x[4] == True)
    printf("Exists")
else 
   printf("NONE")

4 个答案:

答案 0 :(得分:6)

数组边界内的C数组中的每个位置始终存在,因此无需检查随机位置是否存在。您需要做的就是确保索引在边界内。

如果使用静态大小声明数组,则可以通过sizeof获取数组的长度:

int array[30];
int length = sizeof(array) / sizeof(int);
// sizeof(array) returns the size in bytes, divide by element size to get element count

但是,如果数组在编译时没有已知长度,则必须以其他方式找到它。处理数组的C函数通常同时接受指向第一个元素的指针和作为单独参数的大小。

void do_something_to(int *items, int item_count);

将数组传递给函数时需要特别小心,因为传递给函数的数组变为“普通指针”,编译器会丢失其大小的所有跟踪(sizeof将报告指针的大小)。恕我直言,完全避免数组参数并坚持使用指针是最不容易的。

答案 1 :(得分:1)

你不能。

你只需要记住(可能通过int传递)数组的长度为3

答案 2 :(得分:0)

如果数组声明可见,您可以使用" sizeof"并除以数据类型大小。否则你运气不好。

答案 3 :(得分:0)

你做不到。在C中,你必须在声明数组之后自己存储数组的大小。

处理数组的C函数通常有一个int size参数,用于指定数组的大小,以便被调用的函数知道它必须处理多少元素。