多级指针
        多级指针常常使用于数组.这里仅仅介绍一下它长什么样,后文会再次详细对比使用.
        多级指针呢,常见的有二级指针.见图.
 

 
        二级指针的写法: char **p;
            这样来看: char *(*p)
 
 
            先看一级指针.char *p; *p是一个指针,指向了一个char大小的小盒子.
            再看看二级指针. char * (*p) (*p) 是一个指针,指向了一个 * 的小圆圈 .那这个小圆圈叫*(*p) ,这第二个小圆圈既然是指针,那它指向了一个char 大小的小盒子.
            
            在二级指针里面, 只有一个指针变量,就是p , 这个指针变量表示 这个二级指针链的入口地址.
 
 
            
        二级指针的使用
            二级指针的使用是比较烧脑的.但是仔细整理一下,还是可以从图上简单地理解出来.
 

            
  对比一级指针.一级指针的使用
            char *p;
             int main(){

                 char *p;
char a = ; p = &a; //指针变量p的赋值是决定了p指向哪个具体的地址,这里是指向小盒子a的地址.
*p = ; //对p进行*运算是表示,对p指向的小盒子的内容进行取值或者赋值. char **p;
char a = ; //我们先记住一条规则,如果x是一个地址,那么通过 *运算就可以访问这个这个空间里面存放的数据. *p = &a; //这里的*p表示的是对p取值,那二级指针p的值是什么?当然是存放着一级指针的地址啦, 通过*运算,就可以访问一级指针这个小圆圈里面的数据,将这个小圆圈里面的内容,写成小盒子a的地址.
**p = ; //上一步把*p的值写成了小盒子a的地址,那现在*p里面的内容就是a的地址啦,通过 *运算,就可以访问小盒子里面的内容啦. }
            说到底,二级指针就是一级指针的扩展,只要搞明白一级指针怎么读,怎么操作,内存图怎么画,怎么指向空间,怎么访问空间,也一样能用相同的规则,来解读二级指针,多级指针.
            二级指针的例子到数组那里再展开.
            多画图,是学好指针的诀窍.

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

  1. 《C语言程序设计》指针篇<二>

    通过指针引用多维数组 如何理解二维数组元素的地址? 要知道,这本书用了整整两页的内容来讲解这方面的知识,从这里足以看出来理解通过指针来引用二维数组是一件比较麻烦的事情,但是我认为理解并不难. 什么是二 ...

  2. 大一C语言学习笔记(7)---指针篇--什么是指针?什么是指针变量?取地址符“&”的作用是什么?地址运算符“*”的作用是什么,怎么理解两者?

    "指针是C语言的灵魂"这句话一开始我没怎么明白,现在接触了指针,终于知道为什么这么说了,因为....难,真难:下面说一下我对这句话的见解: C语言拥有着其他语言所没有的特性---直 ...

  3. 通过数组初始化链表的两种方法:指向指针的引用node *&tail和指向指针的指针(二维指针)node **tail

    面试高频题:单链表的逆置操作/链表逆序相关文章 点击打开 void init_node(node *tail,char *init_array) 这样声明函数是不正确的,函数的原意是通过数组初始化链表 ...

  4. 易出错的C语言题目之二:指针

    一.写出输出结果 #include<stdio.h> int main(){ ]; a[] = ; a[] = ; a[] = ; int *p,*q; p = a; q = &a ...

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

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

  6. C语言重点——指针篇(一文让你完全搞懂指针)| 从内存理解指针 | 指针完全解析

    有干货.更有故事,微信搜索[编程指北]关注这个不一样的程序员,等你来撩~ 注:这篇文章好好看完一定会让你掌握好指针的本质 C语言最核心的知识就是指针,所以,这一篇的文章主题是「指针与内存模型」 说到指 ...

  7. C\C++语言重点——指针篇 | 为什么指针被誉为 C 语言灵魂?(一文让你完全搞懂指针)

    本篇文章来自小北学长的公众号,仅做学习使用,部分内容做了适当理解性修改和添加了博主的个人经历. 注:这篇文章好好看完一定会让你掌握好指针的本质! 看到标题有没有想到什么? 是的,这一篇的文章主题是「指 ...

  8. 瘋子C语言笔记(指针篇)

    指针篇 1.基本指针变量 (1)定义 int i,j; int *pointer_1,*pointer_2; pointer_1 = &i; pointer_2 = &j; 等价于 i ...

  9. c语言中数组,指针数组,数组指针,二维数组指针

    1.数组和指针 ] = {,,,,};// 定义数组 // 1. 指针和数组的关系 int * pa = array; pa = array; // p[0] == *(p+0) == array[0 ...

  10. 图解c/c++多级指针与“多维”数组

    声明:本文为原创博文,如有转载,请注明出处.若本文有编辑错误.概念错误或者逻辑错误,请予以指正,谢谢. 指针与数组是C/C++编程中非常重要的元素,同时也是较难以理解的.其中,多级指针与“多维”数组更 ...

随机推荐

  1. 上下文ac获取为null,SpringContextUtil配置位置,以及各配置xml的加载顺序有讲究

    发现一个有趣的现象,一般job都会在执行前去初始化一次ac,而任务监视器SupervisorQueueJob不会,因此启动时初始化ac为null,SupervisorQueueJob会始终无法获取上下 ...

  2. vue 修饰符 整理

    事件修饰符 .stop <!-- 阻止单击事件继续传播 --> <a v-on:click.stop="doThis"></a> .preven ...

  3. position:fixed相对父级元素定位而不是浏览器

    position:fixed默认是相对浏览器定位的 原理:fixed定位相对父级容器定位,不添加:top,bottom,left,right样式,通过margin定位 代码:http://jsbin. ...

  4. android libs库中的armeabi-v7a,armeabi和x86

    以下内容转载于:http://blog.csdn.net/liumou111/article/details/52949156 1.区别: 这三者都表示的是CPU类型,早期的Android系统几乎只支 ...

  5. 【起航计划 027】2015 起航计划 Android APIDemo的魔鬼步伐 26 App->Preferences->Preferences from XML 偏好设置界面

    我们在前面的例子Android ApiDemo示例解析(9):App->Activity->Persistent State 介绍了可以使用Shared Preferences来存储一些状 ...

  6. xcode import pod 文件不提示

    在使用第三方类库时,使用cocoaPods是非常方便的,具体使用方法可以参考:CocoaPods安装和使用教程 的安装使用方法.今天讨论的问题是,我在使用的时候遇到了一些问题:用cocoaPod si ...

  7. SPFieldLookupValue class

    using System; using Microsoft.SharePoint; namespace ConsoleApp { class Program { static void Main(st ...

  8. 由Asp.Net客户端控件生成的服务器端控件

    由Asp.Net客户端控件生成的服务器端控件(也就是给客户端控件添加 runnat="server"),这样的控件既能在js中通过id命.类名获取到,也能在服务器端根据id获取到

  9. MAC读取希捷移动硬盘ntfs

    希捷提供了mac读取ntfs磁盘的软件,Paragon. 搜索关键词 "希捷" "mac" 或者通过以下链接进入 https://www.seagate.com ...

  10. 如何启用SAP C4C OData Event Notification

    当我们在试图使用SAP C4C OData事件通知这个功能时,如果遇到下列提示消息,说明这个功能在business configuration里没有开启: The OData Event Notifi ...