char** p 谁能给我解释一下这个是什么意思?

char**p谁能给我解释一下这个是什么意思?请尽量详细一点!还有什么时候才需要动态分配空间?... char** p 谁能给我解释一下这个是什么意思?
请尽量详细一点!
还有什么时候才需要动态分配空间?
展开
 我来答
百度网友660f3e6
2007-03-20 · TA获得超过666个赞
知道小有建树答主
回答量:198
采纳率:0%
帮助的人:295万
展开全部
char p是声明一个字符类型变量p,char * p1是声明一个字符类型的指针变量p1,那么char ** p2就相当与给char类型的指针变量再声明一个指针.(2级指针)

举个例子,假如:
char p='a';//假设声明了p后,p在内存的1000处,则&p=1000(&为取变量首地址)
char * p1=&p;//则p1=1000,*p1=p='a',p1就和p关联了;假设p1被放在2000处
char ** p2=&p1;//则p2=2000,*p2=p1=&p=1000,**p2=&p1=p='a'

在说通俗点,你去超市买东西要先存包,存包的时候给你个手牌.这个时候变量p='a'就相当与你的包,它被放在1000号的箱子里,而你手里的号码牌写着"1000"就相当与p1,也就是p(你的包)的指针.....如果你的号码牌还要存到另外一个号为2000的箱子里,那这个2000的号码牌就成了第一个牌子的指针.

不知道说明白没有,在使用链结构的时候动态分配内存,一般是数据量变化比较大而且范围不好确定的时候.少的时候可能需要2个字节的空间,大的时候可能超过几十MB,这时就不适合直接分配那么大的空间,而应该动态的分配,用多少给多少.
huangzongwu
2007-03-20 · TA获得超过814个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:79.3万
展开全部
char *是字符数组,在C/C++中常用于表示字符串(因为它们没有字符串类型)。

char **是字符数组的数组,即字符串数组。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
傲世修罗王
2007-03-20 · TA获得超过1086个赞
知道小有建树答主
回答量:1034
采纳率:0%
帮助的人:789万
展开全部
这是定义了一个指向指针的指针, 你可以叫它二级指针.
需要的时候就分配呗, 你没有这个需求的时候最后就不要研究这个问题, 否则即使你懂了, 你也不会用, 等你有动态分配的需求时, 你自然就懂了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
中英文和蚊子
2013-05-23 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:87.1万
展开全部
char ***p的话,*p是一个char**指针,**p是一个char*指针,***p是一个char
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
I_am_magician
2007-03-20
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
指向字符指针(char*)的指针。
在编译期无法决定空间大小的时候。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式