多级指针的用途

多级指针你可以看成是一个树,每个节点都可以是一个小树,想找到每层节点的时候只能通过指针偏移确定,除非你知道他们具体的各级坐标,否则无法直接定位。

举个例子strA*******  tree;这个tree其实就是个地址值,不仅如此,这个大树后面只有*******  tree 这层节点保存的值是strA结构体,其他的保存的值全是指针。就是这么多层的指针实现了这个大树,实际使用的使用的时候,要保存每一层的长度,否则无法确定他有多长呵呵。

如果你需要一个类似table的东西或者类似map的东西,或者需要保存配置树这样的东西,都可以考虑下多级指针。

时间: 2024-11-05 20:04:03

多级指针的用途的相关文章

C语言 详解多级指针与指针类型的关系

//通常意义上,指针类型指的是‘指针值’的类型,而不是‘指针’的类型 //V推论①:变量的步长只与变量的类型有关 //普通变量名是一段内存空间的标识,普通变量名代表的是一段内存空间, //对于复杂变量(例如指针):通常的指针的步长准确来说是指‘指针值’的步长,而不是指‘指针本身’的步长,指针本身的步长永远是4, //我们通常说的指针类型往往指的是‘指针值’的类型,,而不是‘指针’的类型 //而指针类型就是一个占4个字节大小内存空间的一种类型(从来没有人定义过指针类型,人们定义的都是‘指针值’的类

C 多级指针

C多级指针 *p                      -----> &p1 *(*p)                   ----->*(&p1) = &p2 *(*(*p))                 ----->*(&p2) = &p3 *(*(*(*p)))               ----->*(&p3)=&p4 *(*(*(*(*p))))            ----->*(&p4

图解多级指针与“多维”数组

指针与数组是C/C++编程中非常重要的元素,同时也是较难以理解的.其中,多级指针与“多维”数组更是让很多人云里雾里,其实,只要掌握一定的方法,理解多级指针和“多维”数组完全可以像理解一级指针和一维数组那样简单. 首先,先声明一些常识,如果你对这些常识还不理解,那么你先去弥补一下基础知识: 1.实际上并不存在多维数组,所谓的多维数组本质上是用一维数组模拟的. 2.数组名是一个常量(意味着不允许对其进行赋值操作),其代表数组首元素的首地址. 3.数组与指针的关系是因为数组下标操作符[],比如,int

c/c++多级指针

c/c++多级指针 如图: # include <stdio.h> int main(void) { int i = 10; int * p = &i; //p只能存放int类型变量的地址 int ** q = &p; //q是int **类型, 所谓int **类型就是指q只能存放int *类型变量的地址, int *** r = &q; //r是int ***类型, 所谓int ***类型就是指r只能存放int ** 类型变量的地址, //r = &p; /

C语言优化实例:消除多级指针的间接访问

如果一个多层次的数据结构达到两级或者两级以上,举例如下: struct A{ int array_member[100]; //其他数据成员 }; struct B{ struct A *a_ptr; //其他数据成员 } 那么通过B类型的指针b_ptr访问A类型的array_member的某一个元素array_member[0]则需要使用b_ptr->a_ptr->array_member[0]这种多级指针的形式.如果一个函数中多次用到这个变量的话,可以采用一个临时变量保存这个多级指针:in

C语言多级指针的使用

话不多说,直接代码,以下是多级指针,通过指针变量修改变量的值 #include <stdio.h> #include <stdlib.h> void secondPoint(int **a, float ***f, double ****d, char *****c){ **a = 100; ***f = 9.2f; ****d = 3.14; *****c = 'g'; } int main(){ int a0 = 10; int *a = &a0; float f0 =

C语言中多级指针的重点分析

一.指针简介        指针是C语言的灵魂,C语言之所以强大,很大一部分原因在于对指针的灵活运用.我们无论需要对内存的精准分配和释放,还是对接口api的使用,乃至面向对象中的类和对象的封装,都涉及到了指针.C语言的指针大致可以分为两种,一种是作为一个变量,其保存的是一段内存地址,也就是本文要谈的多级指针:另一种是作为一种数据类型,像函数指针,用于引出一种类型,主要用于回调函数. 二.指针与基础数据类型 从内存的角度看,数据类型就是一段固定大小内存块的别名. int a=0; int在32/6

函数指针的用途

1.给结构体排序 // 函数指针的用途.譬如:给结构体排序 struct User { const char* name; int numb; }; typedef int CFT (const void*, const void*);// 函数指针类型的定义 void ssort(void* base, int n, int sz, CFT comp) /* 对向量base的元素进行递增排序 n是base的元素个数 sz是元素的大小,即sizeof(base[0]) comp是比较函数 she

图解c/c++多级指针与多维数组

声明:本文转自 chenyang_yao ,欢迎阅读原文. 指针与数组是C/C++编程中非常重要的元素,同时也是较难以理解的.其中,多级指针与“多维”数组更是让很多人云里雾里,其实,只要掌握一定的方法,理解多级指针和“多维”数组完全可以像理解一级指针和一维数组那样简单. 首先,先声明一些常识,如果你对这些常识还不理解,请先去弥补一下基础知识: 1.实际上并不存在多维数组,所谓的多维数组本质上是用一维数组模拟的. 2.数组名是一个常量(意味着不允许对其进行赋值操作),其代表数组首元素的首地址. 3