在c中,什么意思是sizeof().. [ - 1]

时间:2014-12-25 19:17:42

标签: c pointers int size

我想了解下面的代码片段 但我无法解决,(特别是)

void fun(char **p)
{
  char *t;
  t = (p+= sizeof(int))[-1]; //especially this line,why there is "-1" in here?
  printf("%s\n", t);
}
谢谢你的时间。

1 个答案:

答案 0 :(得分:5)

t = (p+= sizeof(int))[-1];

可以改写为

p += sizeof(int); /* The logic of this doesn't make a whole lot of sense to me */
t = *(p - 1);

希望这可以解决问题。