首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >一天一个离职小技巧之数组负下标

一天一个离职小技巧之数组负下标

作者头像
Qt君
发布2023-03-17 13:37:56
发布2023-03-17 13:37:56
2130
举报
文章被收录于专栏:跟Qt君学编程跟Qt君学编程

❝不多说,直接上代码。❞

代码

代码语言:javascript
复制
int array[11] = {0, 1, 2,
                 3, 4, 5,
                 6, 7, 8,
                 9, 10};

int *a = &array[5];    // 指针向前偏移5位
printf("%d\n", a[-5]); // => 0
printf("%d\n", a[0]);  // => 5
printf("%d\n", a[5]);  // => 10

解析

  利用指针偏移实现。

  1. a的指针可以看成:
代码语言:javascript
复制
int *a = &array[5];
=>
int *a = (array + 5);
  1. a[-5]可以看成:
代码语言:javascript
复制
a[-5]
=>
*(a - 5)
=>
*((array + 5) - 5)
=>
*(array + 0)
=>
array[0]
  1. 那么a[0]a[5]也是相应地偏移5位:
代码语言:javascript
复制
a[0]
=>
array[0 + 5]
=>
array[5]
代码语言:javascript
复制
a[5]
=>
array[5 + 5]
=>
array[10]

  赶紧试试吧。如果你们也有「一天一个离职小技巧」也可以告诉君君哟!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 代码
  • 解析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档