C++中原生负整数下标数组操作【伪

@Molly  July 17, 2017

偶然发现的233
直接放代码

#include <iostream>
using namespace std;
int *array;
int main(int argc,char **argv) {
  array = new int[33]+16;
  for(int i=-16;i<=16;++i) {
    array[i] = i;
    cout<<array[i]<<' ';
  }
  cout<<endl;
}

纯C的话,C没有new这个关键词,不过也可以实现,没那么简洁,但是好理解些。

#include <stdio.h>
int *array,data[33];
int main(int argc,char **argv) {
  array = &data[16];
  for(int i=-16;i<=16;++i) {
    array[i] = i;
    printf("%d ",array[i]);
  }
  printf("\n");
}

运行结果:
result.png


添加新评论

  1. tusooa

    你不delete。。!以及c可以malloc啊。。

    Reply
  2. 我好像找到了一个和我一样软tab,大括号喜欢写在同一行,经常漏return的人了【滑稽】
    我是由于PHP写多成习惯了,你呢?

    Reply
    1. @xtlsoft

      漏return是因为以前玩c51可以直接void main()
      然后两个空格代替tab是以前vim用多了,
      大括号不换行纯粹就是习惯了。

      Reply