数组问题????

2020-01-30 13:59发布

#include <stdio.h>
void main()
{
static int b[2][3]={{1,2,3},{4,5,6}};
static int *pb[][]={b[0],b[1]};
int i,j;
for(i=0;i<2;i++)
{
    for(j=0;j<3;j++)
        printf("b[%d][%d]=%d",i,j,*(pb[i]+j));

        printf(" ");
}
}

编译出错了,是什么问题,请大家讲解下,谢谢!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
lcofjp
1楼-- · 2020-01-30 17:54
 精彩回答 2  元偷偷看……
jamasliu
2楼-- · 2020-01-30 18:08
谢谢你的回复,static int *pb[]={b[0],b[1]};中多了一个中括号,能否帮我讲解下,为什么这个指针是这样赋值的static int *pb[]={b[0],b[1]};,还有这句printf("b[%d][%d]=%d",i,j,*(pb[i]+j));中*(pb[i]+j)为什么是这样写的,我想这个指针内容应该是*(pb[0]+0),*(pb[0]+1),*(pb[0]+2),*(pb[1]+0),...谢谢大家的指教!!!
jamasliu
3楼-- · 2020-01-30 21:06
谁给回复都谢,这是应该的礼貌,谢谢你。
Alimy
4楼-- · 2020-01-31 00:42
本帖最后由 Alimy 于 2013-3-26 11:47 编辑

static int *    pb[]={b[0],b[1]};  // 定义一个一维指向int型数据的指针数组,且个数为两个。。
static int *    pb[][2]={b[0],b[1]};  // 定义一个二维指向int型数据的指针数组,且列数为两个,默认行数为1。。(列数必须写,不能都不写)。

static int *    pb[][]={b[0],b[1]}; // 编译器不知道你要干啥。。所以报错了


/*
static int *    pb[]={b[0],b[1]};  // 定义一个一维指向int型数据的指针数组,且个数为两个。。
看看是你要的结果么。。
C:Usersmx_AlimyDesktop>a
b[0][0]=1b[0][1]=2b[0][2]=3
b[1][0]=4b[1][1]=5b[1][2]=6


重新编辑原因:错别字。
*/

一周热门 更多>