请问char ** 的用法

graf 2006-05-17 09:21:06
char *a为定义一个字符型指针变量那么char **a 定义的是什么呢?
...全文
1361 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
freshman1995 2006-05-30
  • 打赏
  • 举报
回复
二维字符数组
C++程序语言设计写着的,C++之父说的
SAMUEL_NAME 2006-05-19
  • 打赏
  • 举报
回复
char**P
P就是一个 指向 字符指针 的指针

char I = 'i';
char* Q = &I;
char** P = &Q;

**P == *Q == 'i'
mr_moran 2006-05-19
  • 打赏
  • 举报
回复
ForestDB(冰) ( ) 信誉:100 2006-05-19 02:32:00 得分: 0


agcty(do it professionally) ( ) 信誉:100 2006-05-18 22:54:00 得分: 0


char*常用于字符串
char**常用于字符串数组

=========================
如上,一下是段demo
#include <stdio.h>

main()
{
char error_msg[][10] = {"Error1", "Error2", "Error3"};
char** perr;
perr = error_msg[0];
printf("%s", perr);
}

==================================================================
感谢,又有了些收获~!

ForestDB 2006-05-19
  • 打赏
  • 举报
回复
不好意思哈,上面的demo是错的,这个才是。

#include <stdio.h>

int main()
{
char* error[] = {"Erro1", "Error2", "Error3"};
char** p;
p = &error[1];
printf("%s", *p);
}
lgwray 2006-05-19
  • 打赏
  • 举报
回复
也可以看成是二维字符数组,如果定义:
char** Table;
则Table 指向二维数组首地址,类型为二维数组第一维首元素,这里为(char*)
*Table 指向二维数组首地址,类型为二维数组第二维首元素,这里为(char)
ForestDB 2006-05-19
  • 打赏
  • 举报
回复
agcty(do it professionally) ( ) 信誉:100 2006-05-18 22:54:00 得分: 0


char*常用于字符串
char**常用于字符串数组

=========================
如上,一下是段demo
#include <stdio.h>

main()
{
char error_msg[][10] = {"Error1", "Error2", "Error3"};
char** perr;
perr = error_msg[0];
printf("%s", perr);
}
ForestDB 2006-05-19
  • 打赏
  • 举报
回复
从工程的角度讲,一般在C中用char*表示string类型。
如char* appName = "hello world";
那么char**就可以理解为指向string的指针。
既char** pAppName = &appName;
这样就可以用pAppName指向不同的string啦。
agct 2006-05-18
  • 打赏
  • 举报
回复
char*常用于字符串
char**常用于字符串数组
晨星 2006-05-18
  • 打赏
  • 举报
回复
是啊,“char*”也是一种类型,这种类型的变量也可以被指针指向,指向它的指针就是“char**”型的。
jixingzhong 2006-05-18
  • 打赏
  • 举报
回复
指针的指针,
保存指针的地址 ...
char ch; //字符
char *a=&ch; //ch 的地址
char **b=&a; //a 的地址
那么有:
*b == a
*a == ch
**b == ch .......
LoveCreatesBeauty 2006-05-18
  • 打赏
  • 举报
回复
>char *a为定义一个字符型指针变量那么char **a 定义的是什么呢

char * —— 指向 char 的指针
char ** —— 指向 char * 的指针
nanlan1984 2006-05-17
  • 打赏
  • 举报
回复
在char **a中
a是指向(**a)的地址(*a)的指针

也就是说a是一个指针
它指向一个地址
而这个地址中存储的也是一个指针
这个指针指向一个字符型数据(即**a)




l_xiaofeng 2006-05-17
  • 打赏
  • 举报
回复
指向指针的指针
chenhu_doc 2006-05-17
  • 打赏
  • 举报
回复
char **a 定义的是什么
trans(char *a)
{
//code
}

fun()
{
char a[N];
trans(a);
}


trans(char **a) // trans(char &*a)
{
//code
}

fun()
{
char a[N][m];
trans(a);
}

70,019

社区成员

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

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