C语言二维数组(解引用、指针数组、数组的指针(2)

来看第二个(*a+1)[1],这里提一句,因为[]的优先级是比*高的所以这里的括号不能去掉,第一步先解引用进入第二维度(*优先级高于+),然后第二维地址+1,然后再在当前基础上再移动一次地址,最后解引用

得到元素的值,这里可能有点绕,换个说法就是[1]是在当前维度进行移动,然后解引用(“当前维度”有点不太严谨,为了方便理解先将就这么用了)

拿a[2][1]来说,一共有四步,其中包含了两次地址移动,两次解引用,执行顺序是:地址移动->解引用->地址移动->解引用(这里提一句,[]的结合性是左结合的,所以在移动的时候先移动行(第一维)再移动列(第二维),小声BB)

详细步骤:第一步:在当前维度地址+2,因为a的维度是第一维,所以是第一维地址+2,即行+2

     第二步:解引用进入第二维度

     第三步:在当前维度地址+1,因为这时已经进入第二维,所以第二维地址+1,即列+1

     第四步:解引用得到元素的值  

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/10cbef340e0b11b9d5555baa8f84124a.html