C语言:定义int a[3][2]={1,2,3,4,5,6};,详解**(a+1)、*(a+1)[0]、(*(a+1))[0]、a[1][0]的值各为多少?
1个回答
展开全部
它们的值都是3。因为a是指向有2个元素的一维数组的指针,那么——
**(a+1)——所以,a+1指向了从3开始的二维数组,*(a+1)就是元素3的指针,**(a+1)自然是3。
*(a+1)[0]——由于[]优先级高于*,所以被解释为*((a+1)[0]),参照1,(a+1)[0]就是元素3的指针,*(a+1)[0]就是元素3。
(*(a+1))[0]——由1知,*(a+1)是元素3的指针,(*(a+1))[0]就元素3。
a[1][0]——不用细说,是第1行(0行起)第0个元素,自然是3。
得出结论:当指针p成功指向数组a时,*p与a[0]等价,*(p+1)与a[1]等价,依此类推。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |