注册 登录
编程论坛 C语言论坛

这个指针数组是什么意思啊

zc2177922023 发布于 2020-02-18 14:08, 2442 次点击

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

}
7 回复
#2
Samson幽客2020-02-18 14:22
就是字面意思啊
*p[0]->a[];
*p[1]->b[];
*p[2]->c[];
然后通过for循环将所指向的数组输出。
#3
zc21779220232020-02-18 14:27
回复 2楼 Samson幽客
*p[0}++是什么意思啊
#4
叶纤2020-02-18 15:02
程序代码:
//不要用*p++用*p+i
#include <stdio.h>
int main( )
{
    static int a[]={1,2,3},b[]={4,5},c[]={6,7,8,9},*p[3]={a,b,c};
    int i;
    for(i=0;i<3;i++)
    printf("%3d",*p[0]+i);//
    printf("\n");
    for(i=0;i<2;i++)
        printf("%3d",*p[1]+i);//这里
    printf("\n");
   for(i=0;i<4;i++)
        printf("%3d",*p[2]+i);//
    printf("\n");

}


#5
吹水佬2020-02-18 15:12
这样写可能好理解点
#include <stdio.h>
int main(void)
{
    static int a[]= {1,2,3},b[]= {4,5},c[]= {6,7,8,9},*p[3]= {a,b,c};
    int i,*pp;
    for(pp=p[0],i=0; i<3; i++,pp++)
        printf("%3d",*pp);
    printf("\n");
    for(pp=p[1],i=0; i<2; i++,pp++)
        printf("%3d",*pp);
    printf("\n");
    for(pp=p[2],i=0; i<4; i++,pp++)
        printf("%3d",*pp);
    printf("\n\n");
}
#6
Samson幽客2020-02-18 16:34
回复 3楼 zc2177922023
p{0}++你可以理解为指向a[x++],然后for循环一次x加一次。x在最初循环时等于0
#7
叶纤2020-02-19 13:40
我不明白局部变量为什么要用static,这不是多此一举吗
#8
cfather2020-02-19 15:48
简单来说,指针就是下标
1