char ***p 多重指针怎么读?

xqqboy2012 2012-04-13 09:14:35
char *** p =null;
这个语句怎么理解? 怎么读呢 ? 这么多*符号 我都晕了。。。
...全文
449 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
leesan快点跑 2012-04-14
  • 打赏
  • 举报
回复
这是一个三级指针,要一层一层的去理解,楼上的大虾都说的和清楚了
leesan快点跑 2012-04-14
  • 打赏
  • 举报
回复
这是一个三级指针,要一层一层的去理解,楼上的大虾都说的和清楚了
JackPan 2012-04-14
  • 打赏
  • 举报
回复
一般两个*就够用了,三个*的,都属性***
flowingfirefly 2012-04-14
  • 打赏
  • 举报
回复
三维字符指针
iamnobody 2012-04-14
  • 打赏
  • 举报
回复
英文比较好读: pointer to pointer to pointer to char;

中文: 指向指向指向字符的指针的指针的指针.
evencoming 2012-04-14
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
我应该如何定义 声明一个 指向某一行 某一列的字符串指针呢 ?
是 char **ptr 还是char ***ptr
读取到 某一行的 某一列 元素
ptr[i][j]
[/Quote]
char ***ptr
xqqboy2012 2012-04-14
  • 打赏
  • 举报
回复
我应该如何定义 声明一个 指向某一行 某一列的字符串指针呢 ?
是 char **ptr 还是char ***ptr
读取到 某一行的 某一列 元素
ptr[i][j]
evencoming 2012-04-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
引用 9 楼 的回复:
C/C++ code

char ch = 'a';
char *p = &ch;
char **pp = &p;
char ***ppp = &pp;
printf("%c\n%c\n%c\n%c\n", ch, *p, **pp, ***ppp);


如果是一个多行多列的结构呢 ?
char **……
[/Quote]
可以
xqqboy2012 2012-04-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
C/C++ code

char ch = 'a';
char *p = &ch;
char **pp = &p;
char ***ppp = &pp;
printf("%c\n%c\n%c\n%c\n", ch, *p, **pp, ***ppp);
[/Quote]

如果是一个多行多列的结构呢 ?
char ***ptr =null; //它是一个指向某一行某一列的元素的指针吗?
那么我用它如何表示呢 ?
ptr[i][j] 这样可以表示 是i行j列吗?
猪头小哥 2012-04-13
  • 打赏
  • 举报
回复
指向字符指针的指针的指针
summer_insects 2012-04-13
  • 打赏
  • 举报
回复

char ch = 'a';
char *p = &ch;
char **pp = &p;
char ***ppp = &pp;
printf("%c\n%c\n%c\n%c\n", ch, *p, **pp, ***ppp);
lanxinglinxi 2012-04-13
  • 打赏
  • 举报
回复
无非就是定义一个指向char类型的指针的 指针的 指针。。。就是把指针的地址不断的转存
wintree 2012-04-13
  • 打赏
  • 举报
回复
之前看过的一个项目 用四级指针。char****
CrazyAsk 2012-04-13
  • 打赏
  • 举报
回复
char *** p ;
1. *只是类型说明符,任它几个*,总之是一个*型(地址或指针),最终指向目标为char.
2.一颗*一级指针,三颗就三级指针。
3.三级指向二级的地址,二级指向一级的地址,一级指向最终目标变量的地址。
4.存一个变量的地址就一星,变量是什么类型 就是什么星。
char A
char *cp=&A
char B[5]={}
char **cpp=B
char***cppp=&cpp
char * 指向单个字符
char** 指向一串字符(当一行理解)
char***指向一多串字符(当一页理解),当然存这个页是个变量 ,也有地址。char***就是放这个地址的




sundayX 2012-04-13
  • 打赏
  • 举报
回复
嗯,我觉得可以,哈哈。
xqqboy2012 2012-04-13
  • 打赏
  • 举报
回复
是不是可以这么理解呢?
char *p = "123";
char **p = {"123","321".....};
char ***p = { {"123","321"...} ,{"abc","cba".....},{.....}.....};
ioaq 2012-04-13
  • 打赏
  • 举报
回复
char *p
定义一个 指向 字符型数据 的指针 命名为p

char **p
定义一个 指向 指向字符型数据的指针 的指针 命名为p

char ***p
定义一个 指向 指向 指向字符型数据的指针 的指针 的指针 命名为p

= NULL
赋初值为空


新手不是很了解。。如有问题,请高手指教
sundayX 2012-04-13
  • 打赏
  • 举报
回复
char *p:p指向一个char类型的指针,可以类似看作是一个字符数组
char **p:p指向一个指针,该指针是指向一个char类型的指针,可以类似看作是个指向字符串数组的指针
char ***p:p指向一个指针,该指针又指向一个指向一个char类型的指针的指针,可以类似看作是指向字符串数组的指针的指针。
evencoming 2012-04-13
  • 打赏
  • 举报
回复
我直接看到 三个*,三级指针p,指向char。。。
反正能懂就行。

69,371

社区成员

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

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