C语言里面对数组名加1操作的一些讨论

#include
int main()
{
   int a[5]={1,2,3,4,5};
  printf("%x, %x", a + 1, &a[0] + 1);
   return 0;

}

假设a的地址为0xbffff318,那么输出的结果为:0xbffff318 + sizeof(int) * 5;0xbffff318 + sizeof(int);

前一个输出这样的结果的原因是:以整个数组结构为单位,来进行加1操作,那么加上的就是数组的长度;后面一个是以数组元素的长度为单位进行加1操作;


你可能感兴趣的:(C语言里面对数组名加1操作的一些讨论)