一个二维数组为什么a[0]+1的地址相当于a[0][1]的地址而&a[0]+1的地址相当于a[1]

1个回答

  • 二维数组:int a[10][5];

    a[0]是个指针指向a[0][0]~a[0][5]的起始元素a[0][0],那么a[0]+1,也可以这样理int *p; p=a[0]; 则a[0]+1就是这个指针加1以后指向的元素,相当于a[0][1]、与p+1指向a[0][1]一样,即p[1]就是a[0][1],把p换成a[0],不就是a[0][1]吗

    a[0]是个指向5个元素一组的指针,下一个指针是a[1],就是a[0]~a[4]这几个指针是顺序存放的,那么&a[0]取得了a[0]指针的位置,&a[0]+1相当于(&a[0])+1指针加1寻址到了a[1]