请教指针的指针问题??

bluefile 2003-08-22 12:18:13
最近对指针的指针又犯难了
char **p 定义了一个二级指针,
那么p表示什么?
*p又表示什么?
**p呢?

如果这样:char **p;
char *p2 = "Test";
*p = p2; //表示什么呢
cout << *p <<endl;

一级指针: a表示指针值(指向地址)
&a表示指针a本来地址
*a表示指针指向值
二级: a 也表示指针值(指向地址)
*a表示???
**a????
&a?????
...全文
18 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluefile 2003-08-23
  • 打赏
  • 举报
回复
我还是不太明白 NEW 分配内存时的用法:char **p = new char*; ?是否正确

以及其他NEW的用法?三井兄能解释一下吗
davidwoo 2003-08-23
  • 打赏
  • 举报
回复
*p 记录存储某一类型数据的地址

**p 记录存在这一地址的地址
bluefile 2003-08-23
  • 打赏
  • 举报
回复
新的问题是:char x[][] = {"haha","hehe","hihi"}
char** p = x;
无法编译!

而用 char *x[] = {"haha","hehe","hihi"};
char **p = x;
就可以
积木 2003-08-22
  • 打赏
  • 举报
回复
记住这句话
char* p是一个指针 char** p是指向指针的指针
p 表示一组字符串中一个字符串的首地址
*p又表示什么?表示一个字符串的首地址
**p 表示一个字符值
char *p2 = "Test"; 定义一个新串
*p = p2; 将p2付给*p,即p指向的一组字串中又添加了p2;
cout << *p <<endl; 自然就是输出p2指向的字串了。

用数组的眼光来看这个问题(很不严谨,但是可以帮助你理解)
int* p 相当于一维数组 int p[]
int* p 相当于二维数组 int p[][]
Salam2001 2003-08-22
  • 打赏
  • 举报
回复
强烈建议看一下谭浩强的“C程序设计”关于指针的那一章,通俗易懂!
zyzyandzyzy 2003-08-22
  • 打赏
  • 举报
回复
很好理解,就是指针的指针啊,指针也是一种变量类型嘛,也可以附值啊。
chxinheifeng 2003-08-22
  • 打赏
  • 举报
回复
对于需要传递内存的程序比如
Fun1(void ** ppBuf)
{
try
{
*ppBuf =(void *) new char[1024];
}
catch(..)
{
}
}
,调用的结果可以带出一个指针,*ppBuf指向的地址是在函数内分配的
另,多级指针在实际上并不存在,也没有意义
积木 2003-08-22
  • 打赏
  • 举报
回复
细点说吧,假设我有一组字串
char x[][] = {"haha","hehe","hihi"}
然后我这样
char** p = x;
那么现在
*p就代表第一字串的首地址
**p就代表第一个字符了
p++后呢?
*p就代表第二个字串的地址了
如果我已经有很多的char* p ;那么我就可以定义一个char** p再设计一个算法,
用来在char* p中遍历
所以我说相当于添加了一个字串,

BTW:
cout << **p << endl
当然是输出当前指向的一个字符了;
bluefile 2003-08-22
  • 打赏
  • 举报
回复
感谢三井的指点,但新的问题是 二维指针除了和指针数组配合使用还有什么意义吗?

char **p = new char*; //这样分配内存对吗???
char *p2 = "Test"; //定义一个新串
*p = p2; //将p2付给*p,即p指向的一组字串中又添加了p2,怎么说p指向一组字符串
cout << *p <<endl; //自然就是输出p2指向的字串了。

那么如果**p 表示一个字符值,cout << **p << endl;又是什么呢

ahusd 2003-08-22
  • 打赏
  • 举报
回复
指针*一次,就等于又套了一次,也就是说,如同数组又加了一层!











immaga 2003-08-22
  • 打赏
  • 举报
回复
记住:
*p是行指针,对应一个二维数组arr[m][n]中的arr[m]一样

69,335

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧