
一道C语言题目不会做,求详细解释
main(){staticinta[2][3]={3,6,9,12,15,18};int*c=a[1];printf("%d,%d",*(c+1),*c+1);}这输出结...
main()
{ static int a[2][3]={3,6,9,12,15,18};
int *c=a[1];
printf("%d,%d",*(c+1),*c+1);
}
这输出结果怎么计算的 展开
{ static int a[2][3]={3,6,9,12,15,18};
int *c=a[1];
printf("%d,%d",*(c+1),*c+1);
}
这输出结果怎么计算的 展开
3个回答
展开全部
结果为15和13。
因为a[1]也就是a[1][0],把指针*c指向了12。
然后*(c+1)是下一个地址,就是a[1][1],指向了15。
然后*c+1是a[1][0]取出后,指针指向的内容+1为12+1=13。
因为a[1]也就是a[1][0],把指针*c指向了12。
然后*(c+1)是下一个地址,就是a[1][1],指向了15。
然后*c+1是a[1][0]取出后,指针指向的内容+1为12+1=13。
展开全部
int *c=a[1]; 表示指针c指向a[1][0]也就是12
*(c+1) 表示15
*c+1 也就是15+1
所以结果是15,16
*(c+1) 表示15
*c+1 也就是15+1
所以结果是15,16
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
*(c+1) 第二行第二列元素 = 15
*c+1 第二行第一列元素 + 1 = 13
*c+1 第二行第一列元素 + 1 = 13
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询