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

use*_*100 2 c

char X[3];
Run Code Online (Sandbox Code Playgroud)

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

if (x[4] == True)
    printf("Exists")
else 
   printf("NONE")
Run Code Online (Sandbox Code Playgroud)

Mat*_*nen 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
Run Code Online (Sandbox Code Playgroud)

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

void do_something_to(int *items, int item_count);
Run Code Online (Sandbox Code Playgroud)

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