数组负索引与16位Windows编程技术详解
1. 数组负索引
在编程中,我们通常使用正索引来访问数组元素,但其实也可以使用负索引来访问数组之前的空间,例如 array[-1] 。虽然很难说清楚为什么要使用负索引,不过有一种已知的实际应用场景。在C/C++中,数组元素的索引从0开始,但有些编程语言(如FORTRAN)的数组第一个索引是1。为了让C/C++也能使用索引1来访问第一个元素,我们可以使用下面这个小技巧:
#include <stdio.h>
int main()
{
int random_value=0x11223344;
unsigned char array[10];
int i;
unsigned char *fakearray=&array[-1];
for (i=0; i<10; i++)
array[i]=i;
printf ("first element %d\n", fakearray[1]);
printf ("second element %d\n", fakearray[2]);
printf ("last element %d\n", fakearray[10]);
printf ("array[-1]=%02X, array[-2]=%02X, array[-3]=%02X, array[-4]=%02X\n",
array[-1],
array[-2],
array[-3],
超级会员免费看
订阅专栏 解锁全文
1480

被折叠的 条评论
为什么被折叠?



