发布网友
共3个回答
热心网友
先看 *(ar2+r) 这部分:ar2代表数组首元素的首地址,ar2+r就是首地址再加上r个偏移量,计算出新的地址然后再取这个地址的值。其实就是ar2[r]的值。那么*(*(ar2+r)+c),就是*(ar2[r]+c),就是ar2[r]+c的值当作一个地址值,然后在这个地址值取该地址上内存保存的值。这样很明显前后的意思还是有区别的。
热心网友
(ar2+r)+c的地址与ar2[r][c]所指地址相同ar2+r等同于ar2[r]
热心网友
1楼讲得很清楚了,我把最难理解的地方再详细讲一下
ar2[r]是一个指向指针的指针,存储的内容是地址(注意和一级指针的区别),这个地址是每一行的首地址。既然这样,那麼*(ar2+r)是什麽意思呢?说到这里楼主应该明白了吧,对一个指针解除引用,可以得到该指针指向的内容,既然该指针存储的是地址,那麼自然*(ar2+r)就是一个地址,打印出来的话是个16进制的数。剩下的就好理解了。