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));
}
求输出结果?讲解一下过程。 展开
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));
}
求输出结果?讲解一下过程。 展开
5个回答
展开全部
运行结果应该是 21吧。
个人分析:
首先定义的是一个5行6列的二维数组,且最后一行的为4,21,1,0,0
然后注意 * 和& 的意思。printf函数表示的就是首元素地址向后移动三位后的指向的数字。
个人分析:
首先定义的是一个5行6列的二维数组,且最后一行的为4,21,1,0,0
然后注意 * 和& 的意思。printf函数表示的就是首元素地址向后移动三位后的指向的数字。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出结是为21,2*i+j-2 = 3,&a[0][0]为数组首元素的地址,加上偏移量3后指向的是元素a[0][3]也就是21
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的程序错误挺多的啊
#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
#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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
*(&a [0] [0] +2*i+j-2))
把&a[0][0]看成是地址,加上一个地址后
*(&a [0] [0] +2*i+j-2))
看成一个指针你就明白了。
把&a[0][0]看成是地址,加上一个地址后
*(&a [0] [0] +2*i+j-2))
看成一个指针你就明白了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询