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

 
        二级指针的写法: 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. vue换一换功能原型

    <html> <meta charset="utf-8"> <head> <script src="https://cdn.bo ...

  2. Linux 学习 之 bash

    Anything is programmable with defined syntax and common lib. Bash Shell is created to programme to L ...

  3. 《深入理解Java 7核心技术与最佳实践》读书笔记(2) Java语言动态性引言

    Java语言是一种静态类型的编程语言.静态类型的含义是指在编译时进行类型检查.Java源代码中的每个变量的类型都要显式地进行声明.所有变量.方法的参数和方法返回值的类型在程序运行之前就必须是已知的.J ...

  4. 回归JDK源代码(2)Enumeration<E>接口

    现在的Java程序员习惯使用Iterator<E>接口或者增强for循环来遍历集合.如果回到JDK 1.0,Enumeration接口则是遍历向量.哈希表的不二之选.本节就解读和翻译一下E ...

  5. python3线程介绍02(线程锁的介绍:互斥、信号、条件、时间、定时器)

    #!/usr/bin/env python# -*- coding:utf-8 -*- import threadingimport timeimport random # 1-互斥锁 Lock 同一 ...

  6. windows 2008 R2-Zabbix server 3.0监控主机的加入

    一.关闭windows防火墙或者开通10050和10051端口 (1).关闭防火墙 开始—控制面板—windows防火墙 按照要求关闭防火墙 (2).开通端口 1.开始—管理工具--高级安全windo ...

  7. Spark Job调度

    Spark Job调度 1.概览 Spark有几种用于在计算之间调度资源的工具.首先,回想一下,如集群模式概述中所述,每个Spark应用程序(SparkContext的实例)都运行一组独立的execu ...

  8. Oracle编程入门经典 第12章 事务处理和并发控制

    目录 12.1          什么是事务处理... 1 12.2          事务处理控制语句... 1 12.2.1       COMMIT处理... 2 12.2.2       RO ...

  9. Gameplay Classes

    每个虚幻游戏类都是一个.h和一个.cpp组成. 类在虚幻中有便准的命名模式. 前缀: A继承于可量产的游戏性类.他们都是Actor,可以直接在游戏中生成. U继承于所有游戏性对象.不能在游戏中直接生成 ...

  10. ARM实验4—按键轮询实验

    key_poll按键轮询实验 实验内容: 通过FS_4412开发板上的按键控制LED灯并打印信息. 实验目的: 熟悉开发环境的使用. 掌握猎户座4412处理器的GPIO接口, 实验平台: FS4412 ...