美文网首页
C语言 指针和数组的关系

C语言 指针和数组的关系

作者: 我本无邪 | 来源:发表于2017-01-16 16:52 被阅读0次

    1>指针数组:代表数组里面所有的元素都是指针变量

    例如:int a=9,b=8,c=7;
    int *p[3]={&a,&b,&c};
    (p[0])=7;
    printf("a=%d\n",a)
    //先算[]代表一个数组3代表数组里面有3个元素,int
    代表元素都是存储整形变量的地址

    2>如何使用指针访问一位数组
    int arr[5]={1,2,3,4,5]
    int i=0;
    int p=arr;
    for(i=0;i<5;i++)
    {
    printf("arr[%d]=%d\n",i,
    (p+1));
    }
    结论:只要有intp=arr;这句话存在,arr能做的事情p也能做;arr不能做的事,p也能做
    访问一位数组的元素地址:&p[i],p+1
    访问一位数组的元素值:怕[i],
    (p+i)
    3 如何只用指针访问二维数组
    int arr[2][3]={1,2,3,4,5,6};
    int (*p)[3]=arr;
    int i=0;
    for (;i<2;i++)
    {
    int j=0;
    for (;j<3;j++)
    {
    printf("arr[%d][%d]=%d\n,i,j,p[i][j]');
    }
    }
    // 先算括号,代表p是一个指针变量,再算[]代表将来这指针变量指向一个大小为3的整型数组,行指针.二级指针.

    结论;只要有int (*P)[3]=arr存在,arr能做的事情,p也能做,arr不能做的事情,p也能做

        访问i行j列元素的值;p[i][j];'*(p[i]+j);*(*(p+i)j)
        访问i行j列元素的地址:&p[i][j];'*p[i]+j;**(p+i)j
         访问i行0列元素的地址arr+i; arr[i]; *(安arr+i)

    相关文章

      网友评论

          本文标题:C语言 指针和数组的关系

          本文链接:https://www.haomeiwen.com/subject/hblopttx.html