美文网首页
指针与二维数组

指针与二维数组

作者: lxr_ | 来源:发表于2021-10-10 11:35 被阅读0次
#include <stdio.h>

int main(int argc, char** argv)
{
    int array[2][3] = { 0 };  

    int k = 0;

    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            array[i][j] = k++;
        }
    }
    printf("array:%p\n", array); //array:007DFBE4        
    // array为二维数组首地址,指向包含3个元素的一维数组首地址的指针,类型为int(*)[],与上一篇所讲的数组指针联系起来
    printf("&array:%p\n", &array); //&array:007DFBE4  与array相等,数组名就是数组地址,array类似于二级指针
    printf("array+1:%p\n", array + 1);  
    //array + 1:007DFBF0  array+1为第二行首地址,指向包含3个元素的一维数组指针
    //每次运行结果不同,可以看出,上面两者相差sizeof(int)*3=12个字节,即一行所占内存大小
                 
    printf("*(array+1):%p array[1]:%p &array[1][0]:%p\n", *(array + 1), array[1],&array[1][0]); 
    //*(array+1):00EFF9C4 array[1]:00EFF9C4 &array[1][0]:00EFF9C4
    //运行结果一样,把第二行看成一个一维数组,则array[1]可以看成该数组的数组名
    
    printf("**(array+1):%d\n", **(array + 1));  //**(array+1):3   第二行第一个元素

    printf("*(*(array+1)+2):%d array[1][2]:%d\n", *(*(array + 1) + 2),array[1][2]);//*(*(array+1)+2):5 array[1][2]:5 
                                                        //两者相等,所以*(array+1)指向第二行,再加2指向第二行第三个元素

    //**********数组指针和二维数组**************
    int(*p)[3] = array;  //array是指向一个含有3个元素的一维数组,而数组指针也是指向整个一维数组

    printf("*(*(p+1)+1):%d *(*(array+1)+1):%d array[1][1]:%d\n", *(*(p + 1)+1),*(*(array+1)+1),array[1][1]);
    //*(*(p+1)+1):4 *(*(array+1)+1):4 array[1][1]:4   一样的结果  p和array都相当于于二级指针

    return 0;
}

相关文章

  • 数组指针和指针数组

    1.数组指针(又称行指针) 二维数组赋给一指针时: 2.指针数组 二维数组赋给一指针数组: 小结:数组指针只是个指...

  • C++ 进阶篇

    指针数组数组的元素是指针类型Point *pa[2];指针数组与二维数组的差别指针数组的元素在内存中不一定连续,二...

  • 二维数组和指针

    二维数组和指针 ⑴用指针表示二维数组元素。 要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。 一...

  • 笔记八

    二维数组指针:一定要知道指针的指向!!即指针指向哪里。指针的运算:注意移动字节数问题。指针与数组的关系:指针数组:...

  • 二维数组与指针、指针数组、数组指针的用法

    二维数组和指针⑴ 用指针表示二维数组元素。要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。我们知...

  • 12.16学习总结

    二维数组指针:一定要知道指针的指向指针的运算:注意移动字节数的问题指针与数组的关系指针数组:int pb[4];数...

  • 指针数组-访问二维数组

    用指针数组访问二维数组

  • 2018-05-24

    5月24日 上课的第十八天。主要讲了指针与二维数组,要注意二维数组名字与地址的关系,注意指针符号*与取地址符&的应...

  • C语言的指针与数组(进阶篇之二)

    二、二维数组与指针 (1).二维数组元素在内存中的存放方式C语言中,二维数组元素值在内存中是线性的。跟一维数组相差...

  • 2019-08-28(二级指针和二维数组)

    一个二级指针**p和二维数组arr 指针数组 code

网友评论

      本文标题:指针与二维数组

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