❝不多说,直接上代码。❞
代码
代码语言:javascript复制int array[11] = {0, 1, 2,
3, 4, 5,
6, 7, 8,
9, 10};
int *a = &array[5]; // 指针向前偏移5位
printf("%dn", a[-5]); // => 0
printf("%dn", a[0]); // => 5
printf("%dn", a[5]); // => 10
解析
利用指针偏移实现。
a
的指针可以看成:
int *a = &array[5];
=>
int *a = (array 5);
a[-5]
可以看成:
a[-5]
=>
*(a - 5)
=>
*((array 5) - 5)
=>
*(array 0)
=>
array[0]
- 那么
a[0]
和a[5]
也是相应地偏移5位:
a[0]
=>
array[0 5]
=>
array[5]
代码语言:javascript复制a[5]
=>
array[5 5]
=>
array[10]
赶紧试试吧。如果你们也有「一天一个离职小技巧」也可以告诉君君哟!