zoukankan      html  css  js  c++  java
  • int *p[4]与int (*q)[4]的区别

    以上定义涉及两个运算符:“*”(间接引用)、“[]”(下标),“[]”的优先级别大于“*”的优先级别。

      首先看int *p[4],“[]”的优先级别高,所以它首先是个大小为4的数组,即p[4];剩下的“int *”作为补充说明,即说明该数组的每一个元素为指向一个整型类型的指针。int *p[4]的存储结构如下:(存储方格横向排列或竖向排列没区别,只要按内存地址顺序排列就行,此处只是为画图方便)

    int <wbr>*p[4]与int <wbr>(*q)[4]的区别



        再看int (*q)[4]。它首先是个指针,即*q,剩下的“int [4]”作为补充说明,即说明指针q指向一个长度为4的数组。int (*q)[4]的存储结构如下:

    int <wbr>*p[4]与int <wbr>(*q)[4]的区别

    请看以下定义:

    int a[2][4]={{2,5,6,8},{22,55,66,88}};

    int c[4]={5,8,9,4};

    int d[3]={23,12,443};

    int *p[4],(*q)[4];

    q=a;

    *p=c;

    *(p+1)=d;

    则int *p[4]和int (*q)[4]的存储数据为:

    int <wbr>*p[4]与int <wbr>(*q)[4]的区别

    int <wbr>*p[4]与int <wbr>(*q)[4]的区别

    验证:

     

     

     

    #include <stdio.h>

    int main(void)

    {

        int a[2][4]={{2,5,6,8},{22,55,66,88}};

        int c[4]={5,8,9,4};

        int d[3]={23,12,443};

        int *p[4],(*q)[4];

        q=a;

        *p=c;

        *(p+1)=d;

        int i,j;

        for(i=0;i<2;i++)

            for(j=0;j<4;j++)

           {

               if((i==1)&&(j==3)) break;

               printf("*(*(p+%d)+%d)=%d ",i,j,*(*(p+i)+j));

           }

        puts("===============");

        for(i=0;i<2;i++)

           for(j=0;j<4;j++)

               printf("*(*(q+%d)+%d)=%d ",i,j,*(*(q+i)+j));

       return 0;

    }

    输出结果为:

    *(*(p+0)+0)=5

    *(*(p+0)+1)=8

    *(*(p+0)+2)=9

    *(*(p+0)+3)=4

    *(*(p+1)+0)=23

    *(*(p+1)+1)=12

    *(*(p+1)+2)=443

    ===============

    *(*(q+0)+0)=2

    *(*(q+0)+1)=5

    *(*(q+0)+2)=6

    *(*(q+0)+3)=8

    *(*(q+1)+0)=22

    *(*(q+1)+1)=55

    *(*(q+1)+2)=66

    *(*(q+1)+3)=88

  • 相关阅读:
    Android TouchEvent 分发流程
    python基础7之python中常用的模块的总结
    C# 压缩数据传输
    C# winFrom 加载BMP 底图
    使用jQuery Ajax功能的时候需要注意的一个问题
    jQuery DOM的操作
    C# CookieExtension 使用Cookie的扩展工具类
    Web Service测试工具小汇 转
    C# 把DT 的数据转换成 list<Model> EntityByEmit
    Web下 MD5 加密与解密
  • 原文地址:https://www.cnblogs.com/luoquan/p/5004754.html
Copyright © 2011-2022 走看看