关于&的思考

假如我们的a的地址是:0Xbfe2e100, 而且是32位机,那么这个程序会输出什么?

#include

int main()

{

  int a[5];

  printf("%x\n", a);

  printf("%x\n", a+1);

  printf("%x\n", &a);

  printf("%x\n", &a+1);

  return 0;

}

结果:bfe2e100,bfe2e104,bfe2e100,bfe2e114

解释:第一个a[0]的地址;第二个a[0]+1的地址,即a[1]的地址;第三个a[0]的地址;第四个相对于数组a的长度的下一组地址,即a[0]+5的地址。


你可能感兴趣的:(Linux)