指针数组与数组指针

时间:2020-01-08
本文章向大家介绍指针数组与数组指针,主要包括指针数组与数组指针使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
指针数组:内容是指针的数组
    char *str[3]={};    //[]优先级高于*
    char *(str[3])={};  //

    char **p=str;       //指向 指针数组的指针

二维数组指针:
    char a[4][3];
    char (*p)[3]=a;     //[3]表示每一行有三个元素,p指向的类型是char[3]
                        //就是一个指针
    p+1;                //前进一行
    *(p+1)              //表示取地址上的数据,也就是整个第 1 行数据。
                        //注意是一行数据,是多个数据
        单独使用时表示的是第 1 行数据,放在表达式中会被转换为第 1 行数据的首地址,
        也就是第 1 行第 0 个元素的地址,因为使用整行数据没有实际的含义,编译器遇到这种情况都会转换为指向该行第 0 个元素的指针;
        就像一维数组的名字,在定义时或者和 sizeof、& 一起使用时才表示整个数组,出现在表达式中就会被转换为指向数组第 0 个元素的指针。
    *(p+1)+1            //表示第 1 行第 1 个元素的地址
    *(*(p+1)+1)

原文地址:https://www.cnblogs.com/working-in-heart/p/12166451.html