C语言:定义int a[3][2]={1,2,3,4,5,6};,详解**(a+1)、*(a+1)[0]、(*(a+1))[0]、a[1][0]的值各为多少?

 我来答
White_MouseYBZ
2020-09-05 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6467万
展开全部

它们的值都是3。因为a是指向有2个元素的一维数组的指针,那么——

  1. **(a+1)——所以,a+1指向了从3开始的二维数组,*(a+1)就是元素3的指针,**(a+1)自然是3。

  2. *(a+1)[0]——由于[]优先级高于*,所以被解释为*((a+1)[0]),参照1,(a+1)[0]就是元素3的指针,*(a+1)[0]就是元素3。

  3. (*(a+1))[0]——由1知,*(a+1)是元素3的指针,(*(a+1))[0]就元素3。

  4. a[1][0]——不用细说,是第1行(0行起)第0个元素,自然是3。

得出结论:当指针p成功指向数组a时,*p与a[0]等价,*(p+1)与a[1]等价,依此类推。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式