C语言数组下标的下限是0,上限是数组的大小减1。例如,对于int a[10],定义了一个整型数组a,具有10个元素,分别是a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]。数组在使用时,一定要注意下标不能越界,否则就会产生意想不到的结果。二维数组有两个下标,可分别表示行下标和列下标,在使用二维数组时,要注意两个下标都不能越界。
上下限就是 最大允许 下标数值 和 最小允许 下标数值。int C[5]; 允许的下标值是 0,1,2,3,4所以 最大下标 4,最小下标 0也就是 可以 用 到 C[0] 和 C[4];不允许用 C[5],C[6]...不允许用 C[-1],C[-2]...
编译选项打开数组下标越界检查就可以在越界访问时报错。只是C程序通常对效率需求很高,而下标越界检查比较影响性能一般不会打开而已。至于要查询已分配的内存空间大小,没有通用的可移植的办法实现它,所以你一般应该创建一个变量单独保存之,每个需要保存大小的内存分配都需要单独一个变量保存尺寸。或者你可以借用特定编译器与cpu体系下的底层功能,但那些功能并不在所有平台下有效。
要输出数组的一段,可以使用指针和循环语句来实现。
以下是一个示例代码,演示如何输出数组的一段:
int length = 4; // 需要输出的元素个数
// 使用指针来访问数组的元素
在上面的代码中,定义了一个整型数组`arr`,然后通过定义`start`和`length`来指定需要输出的元素区间。接着使用指针`ptr`来访问数组的元素,从索引2开始。最后使用循环语句遍历数组的一段,并使用`printf()`函数输出元素。
输出结果为:`3 4 5 6`,表示输出了数组中从索引2开始的4个元素。