数组指针 和 指针数组
        这两个名词可以说是经常搞混了
        数组指针--> 数组的指针       就是前面讲的 指向数组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 ;
}

int main(){
//数组指针
int *p[]; //数组指针
func(p); //指针数组的实参 }

C语言数组篇(二)指针数组和数组指针的更多相关文章

  1. Java菜鸟学习笔记--数组篇(二):数组实例&args实例

    基本类型实例 //1.定义一个一维数组,先声明,在分配空间 int []number;//生命,没有初始化,number=null number=new int[5];//初始化为默认值,int默认值 ...

  2. C语言数组篇(一)一维数组

       0.  数组的两种表现形式         一种是常见的a[10];         //初学者常用         另一种是用指针表示的数组.   //实际工程使用.常用于参数传递       ...

  3. c语言学习篇二【基础语法】

    一.定义常量: 使用 #define 预处理器. 使用 const 关键字. #include <stdio.h> int main() { const int LENGTH = 10;/ ...

  4. PHP学习笔记之数组篇

    摘要:其实PHP中的数组和JavaScript中的数组很相似,就是一系列键值对的集合.... 转载请注明来源:PHP学习笔记之数组篇   一.如何定义数组:在PHP中创建数组主要有两种方式,下面就让我 ...

  5. C语言数组篇(五)多级指针和二维数组指针的区别

    多级指针   以二级指针为例 二级指针的由来是 指针数组 的指针形式. int *p[10] 读取的顺序是 p[] --> 10个空间的数组 * p[] --> 这10个空间的数组里面存放 ...

  6. C语言笔记(二维数组与数值指针)

    一.关于二维数组和二维数组区别 (1)一维数组在内存中是连续分布存储的,同样,二维数组也是在内存连续存储的.所以从内存的角度来分析,一维数组和二维数组其实没有本质区别. (2) 二维数组可以使用一维数 ...

  7. C语言数组篇(四)二维数组

      二维数组声明: ][] ={{,,},{,,}; //两行 三列         二维数组在声明的时候可以不写行,但一定要写列 ] = {{,},{,,},{}}; //未声明的地方自动补零 二维 ...

  8. C语言基础复习:字符,字符数组,字符串,字符指针

    1. 概述2. 字符2.1 字符定义和大小2.2 字符的输入和输出2.3 字符的计算3. 字符数组3.1 字符数组的定义和大小3.2 字符数组的输入和输出3.3 字符数组的计算4. 字符串4.1 字符 ...

  9. 转: 浅谈C/C++中的指针和数组(二)

    转自:http://www.cnblogs.com/dolphin0520/archive/2011/11/09/2242419.html 浅谈C/C++中的指针和数组(二) 前面已经讨论了指针和数组 ...

随机推荐

  1. Java的类成员变量、实例变量、类变量,成员方法、实例方法、类方法

    总是被这些相似的概念搞晕,查阅了资料后做个小总结,以变量为例,方法辨析类似. 1.多胞胎名字汇总辨析 成员变量和成员方法是范围最大的定义,提到成员变量就可以理解成你所定义在一个类体中的各类变量的统称, ...

  2. 洛谷 P1195 口袋的天空(最小生成树)

    嗯... 题目链接:https://www.luogu.org/problemnew/show/P1195 思路: 首先可以判断这道题是用最小生成树来做的,然后在将其合并时用ans记录一下它的总消耗, ...

  3. 我的Android开发之路——百度地图开源工具获取定位信息

    定位技术在现在的移动设备上是必不可少的,许多app都会使用定位功能. 通常定位方式有两种:GPS定位:网络定位. Android系统对这两种定位方式都提供了相应的API支持,但是因为google的网络 ...

  4. Struts2_Global_Results_全局结果集

    struts.xml文件配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts ...

  5. 只为更快、更省、更安全的 Azure CDN

    来来来!小编今天要公布一件大事啦: 经过最近一次更新,Azure CDN 高级版服务 HTTPS SSL 证书的申请方式有所改进啦,除了现有的 Azure CDN 代为申请证书外,还支持用户自己申请的 ...

  6. DIV命名规范

    DIV命名规范 企业DIV使用频率高的命名方法 网页内容类 --- 注释的写法: /* Footer */ 内容区/* End Footer */ 摘要: summary 箭头: arrow 商标:  ...

  7. Vue.js-创建Vue项目(Vue项目初始化)并不是用Webstrom创建,只是用Webstrom打开

    我犯的错误:作为vue小白,并不知道还要单独去创建初始的vue项目,于是自己在webstrom中建了一个Empty Project, 在其中新增了一个js文件,就开始import Vue from “ ...

  8. vue checkbox 双向绑定及初始化渲染

    双向绑定可以绑定到同一个数组 <input type="checkbox" id="jack" value="Jack" v-mode ...

  9. ubuntu修改字体大小

    字体大小可以整体修改 System Settings -> Displays -> Scale for menu and title bars

  10. Git-进阶-远程仓库的使用

    一.远程仓库怎么玩 1. 自己搭建一个运行Git的服务器 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上,但肯定有一台机器有着最原始的版本库,然后别的机器来克隆这个原始版本库,这 ...