标题:指针数组问题,略急谢谢!
只看楼主
选调生
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:100
注 册:2016-6-24
结帖率:66.67%
已结贴  问题点数:10 回复次数:5 
指针数组问题,略急谢谢!
程序代码:
#include <stdio.h>
main()
{
    int d[][4]={1,2,3,4,5,6,7,8,9,10,11};
    int *p[3],j;
    for(j=0;j<3;j++)
        p[j]=d[j];
    printf("%5d %5d\n",*(*(p+2)+3),*(*(p+1)+1));
}


可以帮忙讲一下图里三个方框中的东西吗,看不懂

搜索更多相关主题的帖子: 指针 数组 int for 东西 
2019-03-07 15:32
wp2319570
Rank: 2
等 级:论坛游民
帖 子:30
专家分:66
注 册:2019-3-4
得分:4 
这段代码实现了神马功能

要对正确的代码进行解析 才有意义
2019-03-07 15:44
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
得分:4 
程序代码:
#include <stdio.h>
main()
{
    int d[][4]={1,2,3,4,5,6,7,8,9,10,11};
    int *p[3],j; // p是一个指针数组
    for(j=0;j<3;j++)
        p[j]=d[j]; // p指向了二位数组d的每一行的起始位置
    printf("%5d %5d\n",*(*(p+2)+3),*(*(p+1)+1)); // p+2就是p[2],在+3表示d第3行第4个数,p+1就是p[1],再+1表示d第2行第2个数
}

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2019-03-07 16:59
xhxh
Rank: 2
等 级:论坛游民
威 望:2
帖 子:17
专家分:31
注 册:2019-2-20
得分:4 
程序代码:
    int d[][4] = 
    { 
        1,2,3,4,
        5,6,7,8,
        9,10,11,7//假如我在这个位置加一个7
    };//二位数组
    
    int *p[3], j;
    //*p[3]  指针数组  数组内每个元素都是一个指针
    for (j = 0; j<3; j++)
        p[j] = d[j];
    //通过3次循环给 *p[3] 指针数组内的每一个元素赋值
    printf("%5d %5d\n", *(*(p + 2) + 3), *(*(p + 1) + 1));
    //*(*(p + 2) + 3)        *(p+2) 得到指针数组下标为3的地址也就是二维数组的首地址   (*(p + 2) + 3)二维数组数组下标为3的元素 我不加7的话就是你打印的结果
    //*(*(p + 1) + 1))       同上
    system("pause");
2019-03-14 02:27
选调生
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:100
注 册:2016-6-24
得分:0 
回复 4楼 xhxh
好的,懂啦,谢谢
2019-03-15 16:07
选调生
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:100
注 册:2016-6-24
得分:0 
回复 3楼 waterstar
嗯嗯,明白了,讲的很详细,谢谢!
2019-03-15 16:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-493455-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.390194 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved