您好、欢迎来到现金彩票网!
当前位置:2019欢乐棋牌 > 指针 >

C语言高手进关于双重指针 多重指针的问题

发布时间:2019-08-07 04:16 来源:未知 编辑:admin

  问题2. 如果int * p 可以这样解释定义了一个名叫p的指针它可以存储一个int型空间地址 那么int ***p 应该阐述 地址的地址的地址 是个什么东西啊? 头都弄晕

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部1、多重指针常用于多维数组或者多维字符串的操作,有时也用于函数参数传递;

  2、指针是C语言的一个重要知识点,你可以简单理解为地址。多重指针需要通过多次寻址才能找到实际的值。这里一个示例:

  以上变量按照定义先后顺序在内存中从高地址到低地址连续存储的,每个变量占据8个字节空间。

  其中p3的值(也就是0X6C56C280这个地址的内存中存放的数据)为p2的地址。

  p2的值(也就是0X6C56C288这个地址的内存中存放的数据)为p1的地址。

  p1的值(也就是0X6C56C290这个地址的内存中存放的数据)为x的地址。

  要取得最终的0x1234这个数据,几重指针前面就有几个*,比如***p3就表示0x1234这个具体的值。只要少一个*,那么获得的就是地址。

  其实只要清楚一点:指针也是一个变量,所以它也是有地址的,你就会不头晕了。

  int ***p也就是一个指针而已,只不过,它是int **类型的指针. 假如有一个变量a,三个指针p, p1, p2. a的地址放在p2里, 而p2是个指针,自己也是有地址的,而p2的地址放在p1里, p1也是个指针,它的地址又放在p里。所以我们想要通过p来取出a的值,那就要先从p中取出p1的地址,然后找到p1,再从p1中取出p2的地址,再找到a,取出a的值。所以这几个变量的定义和赋值分别是 :

  如果把内存单元比喻成是一个个的信箱,每个信箱的钥匙就代表信箱的地址,那就是a信箱里面放的是a的值,a的钥匙放到p2信箱里,p2的钥匙放到p1的信箱里, p1的钥匙放到p信箱里。

  这个在编程中还是有用处的,特别是在对复杂的数据结构做处理的时候,这样的指针优势就来了,处理灵活,速度快,但也会带来很大的风险。

  展开全部int *p 定义了一个名叫p的指针它可以存储一个int型空间地址

  int **s 这也是一个指针 但是它能存储一个指针的地址(而不是一个普通的变量)

http://lemadras.com/zhizhen/407.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有