char X[3];
如何检查数组X[position]
是否存在?
例如:
if (x[4] == True)
printf("Exists")
else
printf("NONE")
答案 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
参数,用于指定数组的大小,以便被调用的函数知道它必须处理多少元素。