2 [p]和6 [p]是什么意思?

时间:2017-02-11 18:42:21

标签: c arrays pointers

procedure TForm1.Button1Click(Sender: TObject);
var
  MenuItem: TMenuItem;
  Action: TCustomAction;
begin
  MenuItem := TMenuItem.Create(PopupActionBar1);
  Action := TFileOpen.Create(PopupActionBar1);
  Action.Caption := '&Open...';
  MenuItem.Action := Action;
  PopupActionBar1.Items.Add(MenuItem);

  MenuItem := TMenuItem.Create(PopupActionBar1);
  Action := TFileOpenWith.Create(PopupActionBar1);
  Action.Caption := 'Open with...';
  MenuItem.Action := Action;
  PopupActionBar1.Items.Add(MenuItem);
end;

#include <stdio.h> int main(void) { char c[]="GATECSIT2017"; char *p=c; printf("%s", c+2[p]-6[p]-1); return 0; } 2[p]是什么意思? 请提供详细说明。

输出:6[p]

2 个答案:

答案 0 :(得分:4)

对于任何有效的指针或数组p和索引i,表达式p[i]等于*(p + i)。由于commutative property添加*(p + i)等于*(i + p),因此等于i[p]

简而言之,2[p]p[2]相同。

答案 1 :(得分:2)

  

2[p]6[p]的含义是什么?

2[p]相当于p[2]6[p]相当于p[6]