zoukankan      html  css  js  c++  java
  • C语言数组篇(二)指针数组和数组指针

    数组指针 和 指针数组
            这两个名词可以说是经常搞混了
            数组指针--> 数组的指针       就是前面讲的 指向数组a的指针p;
            指针数组-->存满指针的数组  就是一个数组里面存的都是指针.----> 也是所谓的二级指针
            数组指针就不讲了,见一维数组和指针.
            那么指针数组呢?
            首先,指针数组是 一个数组里面都是指针
            第一步,我们需要一个数组
            point[10]   //我们定义了一个空间为10的数组
            
            第二步,这个数组是什么类型的? 指针类型的
            * point[10]     //区别: int a[10] 中 数据元素是int型的,那我们现在需要指针型的,就把int换成 * .
            还没完,第三步,数组里面的每个元素都是指针,但是指针就必须指向拎一个内存空间,那么这个空间有多大?
            int *point[10]     //表示有一个数组p,里面存放的都是指针类型的变量,然后这些指针都指向int大小的空间.
            int *p[10] 就是指针数组.
                从这里我们也发现,他的优先级是 以point为中心,从右往左 先p[] --> *p[] --> int *p[]
            指针数组就是二级指针.
                因为指针数组不单单又有它自己本身,还附带每个指针袁术指向的小空间.那么:
            数组的地址是p,从数组数组的第一个元素是*p,第二个元素是*(p+1),第三个是...
            那么,第一个元素指针所指向的小空间的内容就是 *(*(p)) 简写成 **p;
            所以,对于二级指针**p 来说 p 是数组地址, *p 是数组里面的元素, **p 是数组里面指针指向的数据 .
            从另一个角度理解 *p[10] 因为 p[10] 的指针形式是 *p 所以--> *(*p) 也符合定义
     //指针数组的形参 -->二级指针
            
    int func(int **p){
    //...
    return 0;
    }
    int main(){ //数组指针 int *p[10]; //数组指针 func(p); //指针数组的实参

    }
  • 相关阅读:
    Regionals 2012 :: Asia
    计算几何专题
    简单几何(凸包+多边形面积) POJ 3348 Cows
    简单几何(求凸包点数) POJ 1228 Grandpa's Estate
    简单几何(凸包+枚举) POJ 1873 The Fortified Forest
    简单几何(极角排序) POJ 2007 Scrambled Polygon
    Codeforces Round #328 (Div. 2)
    简单几何(直线求交点) POJ 2074 Line of Sight
    简单几何(点的位置) POJ 1584 A Round Peg in a Ground Hole
    简单几何(线段相交)+模拟 POJ 3449 Geometric Shapes
  • 原文地址:https://www.cnblogs.com/kmist/p/10068816.html
Copyright © 2011-2022 走看看