二位数组与指针理解

来源:互联网 发布:国家电网照片采集软件 编辑:程序博客网 时间:2024/04/30 05:55

指针两个关键元素:指针的地址和指向内容的长度。通过这两个元素区分指针。

        char *p;int *int1;double *d2;printf("p=%p,int1=%p,d2=%p\n", sizeof(p), sizeof(int1), sizeof(d2));//4个字节//获取指针指向内容的大小,用(*)来获取printf("*p=%p,*int1=%p,*d2=%p\n", sizeof(*p), sizeof(*int1), sizeof(*d2)); //1,4,8

以上代码,可以发现,作为指针,大小都是4 个字节,但是所指向地址的内容不一样,如何获取呢?通过在地址前面加上 (*)可以获取

看一下二维数组和指针

int a[3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12 };printf("a=%p,&a=%p,*a=%p\n",a,&a,*a);//地址一样 (0073FE28)printf("*a=%d,*&a=%d,**a=%d",sizeof(*a),sizeof(*&a),sizeof(**a));//16,48,4

可以发现地址一样,但是他们所指向的内容却不一样。

     a 是数组的行指针,长度是16

     &a是整个数组的指针

     *a 是列指针

     



0 0
原创粉丝点击