C语言关于数组与指针的一道题

#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,... #include"stdio.h"
main()
{
int a [5] [6] ={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1}
int i=0,j=5;
printf("%d\n",*(&a [0] [0] +2*i+j-2));
}
求输出结果?讲解一下过程。
展开
 我来答
随风飞翔8
2010-04-22 · TA获得超过126个赞
知道答主
回答量:82
采纳率:0%
帮助的人:72.9万
展开全部
a [5] [6] ={{23,3,65,21,6},
{78,28,5,67,25},
{435,76,8,22,45},
{7,8,34,6,78},
{32,4,5,67,4},
{21,1,0,0,0}};
这个数组其实是这样,楼主的写法其实是一样的,这样看起来比较容易理解。
a [0] [0] +2*i+j-2;这个是取a数组的第0行第3列,自然也就是21
117556187
2010-04-22 · TA获得超过9296个赞
知道小有建树答主
回答量:1282
采纳率:0%
帮助的人:903万
展开全部
运行结果应该是 21吧。

个人分析:

首先定义的是一个5行6列的二维数组,且最后一行的为4,21,1,0,0

然后注意 * 和& 的意思。printf函数表示的就是首元素地址向后移动三位后的指向的数字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qlyzpqz
2010-04-22
知道答主
回答量:15
采纳率:0%
帮助的人:23.5万
展开全部
输出结是为21,2*i+j-2 = 3,&a[0][0]为数组首元素的地址,加上偏移量3后指向的是元素a[0][3]也就是21
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花明影屋乐
2010-04-22 · 超过35用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:50.9万
展开全部
你的程序错误挺多的啊
#include <stdio.h>
int main()
{
int i,j;
int a [5] [6] ={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};
i=0;
j=5;
printf("%d\n",*(&a [0] [0] +2*i+j-2));
}
运行结果是21
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_小_苏
2010-04-22 · TA获得超过343个赞
知道小有建树答主
回答量:330
采纳率:100%
帮助的人:212万
展开全部
*(&a [0] [0] +2*i+j-2))
把&a[0][0]看成是地址,加上一个地址后
*(&a [0] [0] +2*i+j-2))
看成一个指针你就明白了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式