#include<stdio.h>
main()
{
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;
for(i=0;i<4;i++)
p[i]=&a[i*3];
printf("%d\n",p[3][2]);

}
这里的p[3][2]是什么意思,帮我分析下这个程序
一楼 那么p[3][2]具体是哪个

展开全部
收起
3回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Gina失踪了

    18人对此回答表示赞同

    输出12,这里主要是指针和数组的关系
    int *p[4]的含义是,p是一个一维数组,数组中的每一个元素都是一个int型的指针变量
    for语句里把p中的每个指针指向了a数组中的3个元素,所以p[0]={1,2,3},p[1]={4,5,6},p[2]={7,8,9},p[3]={10,11,12}
    所以p[3][2]=12,
    解释是对的 下标从0开始,所以p[3][2]是p[3]中的第三个元素,是12

    p[i]=&a[i*3];
    &
    展开
    18
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 难以启齿

    11人对此回答表示赞同

    下面正解:
    我们知道,二维数组可以写成一维数组的形式,同样一维数组也可以写二维数组的形式,正如楼主问题中的数组a[12]可以写成a[4][3]={{1,2,3},{4,5,6,},{7,8,9},{10,11,12}}这样的一个四行三列的数组,总之一个原则数组元素和其在内存的位置不变。
    现在我们可以将数组a[4][3]看着包含四个一维数组的数组,每一个一维数组都是它的元素。
    对于*p[4],他是一个包含4个指针元素的数组。而下面的循环语句正是将二维数
    展开
    11
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 键盘手

    10人对此回答表示赞同

    #include<stdio.h>
    main()
    {
    int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;
    for(i=0;i<4;i++)
    p[i]=&a[i*3]; /*p[0]={1,2,3} p[1]={4,5,6},p[2]={7,8,9},p[3]={10,11,12}*/
    printf("%d\n",p[3][2]); /*显示
    展开
    10
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部