C语言关于二维数组的问题?

例如w是个二维数组名,a是一维数组名。有a[i]和*(a+i)等价。那么*(*w+3)看成*(*(w+0)+3),上面的a[i]和*(a+i)等价,那*(w+0)就是w[... 例如w是个二维数组名,a是一维数组名。
有a[i]和*(a+i)等价。
那么*(*w+3)看成*(*(w+0)+3),上面的a[i]和*(a+i)等价,那*(w+0)就是w[0],*(w[0]+3)就是w[0][3]
*(w+1)[4]由于[]优先级比*高,所以等价于*((w+1)[4]),把(w+1)这个整体看成a就变成*(a[4]),然后就是*(*(a+4)),把a带回去*(*(w+5)),*(w+5)就是w[5],表示的是&w[5][0],再加个星号就是w[5][0]

我想问下这样理解有问题吗.
展开
 我来答
庄政警
2020-03-10 · TA获得超过9916个赞
知道大有可为答主
回答量:1113
采纳率:94%
帮助的人:869万
展开全部
没毛病,完全正确
只是*(*(w+5))这个没必要牵扯到&w[5][0]再加个星号,就用a[i]和*(a+i)等价这个事实就行了
*(w+5)就是w[5],*(w[5])就是*(w[5]+0)自然就是w[5][0]了
在c语言里,在访问数据时,a[k]会被编译器解释为*(a+k),所以a[k]和k[a]是一回事,a[2]和2[a]也是一样的。当然,定义数组时不能这样。
追问
666,访问数据时,a[2]和2[a]都可以,奇怪的知识又增加了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式