| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1866 人关注过本帖
标题:指针数组问题,略急谢谢!
只看楼主 加入收藏
选调生
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
快速回复:指针数组问题,略急谢谢!
数据加载中...
 
   



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

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