社区
C语言
帖子详情
奇怪的指针:char buf[],char *buf[],char **buf[].
XHunterX
2005-06-10 11:48:18
哪位大侠能够讲讲他们的结构:
char buf[256];
char *buf[256];
char **buf[256];
小弟真的很迷惑,不就是个二级指针吗?怎么变出了二维数组出来?是不是可以无限char ***...***bu[256];
...全文
3559
29
打赏
收藏
奇怪的指针:char buf[],char *buf[],char **buf[].
哪位大侠能够讲讲他们的结构: char buf[256]; char *buf[256]; char **buf[256]; 小弟真的很迷惑,不就是个二级指针吗?怎么变出了二维数组出来?是不是可以无限char ***...***bu[256];
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
csucdl
2005-06-11
打赏
举报
回复
1
char buf[256] 在内存中分配了连续的256个存储单元,每个存储单元的大小为SIZEOF(CHAR),存放的是
一个字符的ASCII码值
char *buf[256] 在内存中也分配了连续的256个存储单元,每个存储单元的大小为SIZEOF(CHAR*),存放的是字符指针,即一个字符数组的首地址, 于是buf[0]是某个字符数组的首址,buf[0][0]由基址变址寻址方式得到的便是一个字符了。
ruodeer
2005-06-11
打赏
举报
回复
那不是二维是三维
一个*就是一个array么
richardgates
2005-06-11
打赏
举报
回复
char buf[256];字符数组
char *buf[256];指针数组
char **buf[256];二级指针数组
简单问题,搞复杂,何必呢.
XHunterX
2005-06-11
打赏
举报
回复
TO : sztony(最爱美眉) :
至于 char ** ,我是这样理解的:
比如有十个char * 数组:char * buf1[256],char * buf2[256],char * buf3[256]...char * buf10[256];
我们把这十个数组的指针提取出来,存放在10个char ** 的数组里面,就得到:char ** p_buf[10]; 对于char *** 也是一样的,一层一层的往上抽象。
sztony
2005-06-11
打赏
举报
回复
我说一句,看对不对.
可以这样看:
char *buf[256] ={"000",
"1111",
"222" ,
"333",
...
...
...
"255"
};
所以 :
printf("%s\n",buff[255]);
===============================
结果为: "255"
所以*buf[256]其实就是256个字符指针,每个字符指针指向一个字符串
至于**buf[256]嘛,请高手说说.
zhousqy
2005-06-10
打赏
举报
回复
char *buf[256];
-------------
这个buf可以理解为指向二维数组的指针.
buf ---> --------- ---------
buf[0]-->|buf[0][0]|--->|buf[0][1]|
--------- ---------
buf[1]-->|buf[1][0]|--->|buf[1][1]|
--------- ---------
力哥
2005-06-10
打赏
举报
回复
char *buf[123]
char **buf[123]
char (*buf)[123]
char (**buf)[123]
有什么区别?
做了一个项目服务网:http://www.cpsol.net/ cpsol的意思是china project service online 即中国项目服务在线,欢迎大家提点意见,感激不尽!!!
:)
foochow
2005-06-10
打赏
举报
回复
mark!!
moon615
2005-06-10
打赏
举报
回复
这样看好一些
(char) buf[123];
(char *) buf[123];
(char **)buf[123];
c语言的多位数组设计得不太好
「已注销」
2005-06-10
打赏
举报
回复
建议重新温习指针和数组的关系。。。。呵呵。。我也在努力。。看《c和指针》
qfeng_zhao
2005-06-10
打赏
举报
回复
理论上应该可以无限 char **…………………………**buf[256]吧
qfeng_zhao
2005-06-10
打赏
举报
回复
char buf[256] 一维数组,每个元素为一个字符
char *pbuf[256] 一维数组,每个元素为一个指针,都可以指向上面定义的那个一维字符数组,所以说相当于二维数组,例如:pbuf[0][0] = buf[0];
char **ppbuf[256] 每个元素为一个指向指针的指针,即都可以指向上面定义的那个一维指针数组,应该相当于三维了吧,例如:ppbuf[0][0][0] = pbuf[0][0] = buf[0].
「已注销」
2005-06-10
打赏
举报
回复
char *buf[256];//类似于char buf[][256]
char **buf[256];//类似于char buf[][][256]
zwzzj
2005-06-10
打赏
举报
回复
char buf[123]; //buf是一个数组,里面的元素为 char 型的。
char *buf[123];// buf是一个数组,里面的元素为 char * 型的。
char **buf[123];// buf是一个数组,里面的元素为 char ** 型的。
「已注销」
2005-06-10
打赏
举报
回复
char buf[256];//普通的数组
char *buf[256];//指向字符类型的指针数组
char **buf[256];//是个指针数组。。指针指向字符类型的指针。。。也就是指针的指针。。
「已注销」
2005-06-10
打赏
举报
回复
如果你明白
int array[10]和int *ap=array;的关系就容易很多了
XHunterX
2005-06-10
打赏
举报
回复
如何区别他们呢:
char buf[256];
char *buf[256];
char **buf[256];
「已注销」
2005-06-10
打赏
举报
回复
是不是可以无限char ***...***bu[256];
----------
理论上是可以的。。
XHunterX
2005-06-10
打赏
举报
回复
100分啊,没人要么?
XHunterX
2005-06-10
打赏
举报
回复
呵呵,其实这里面还是有一些微妙的地方:
比如 数组的下标表示法与指针的转换,字符与字符串的转化,数组维数的变化,动态内存分配与静态分配...
加载更多回复(9)
char
*
buf
和
char
buf
[64],定义两种字符串作为参数传递给函数的区别
问题描述: 最近在项目中遇到了一个让人疑惑的问题,有一个发送函数需要传递void*类型的参数,我定义了
char
*
buf
= “abcdefg”; 然后将
buf
作为参数传递给了这个发送函数,但是函数返回值显示发送成功,但是另一端没有接收到数据。查找了好久, 最终我将
char
*
buf
= “abcdefg”,改为
char
buf
[64] = “abcdefg”;然后再次传输,结果传输成功。 总结: 以后遇到这种情况可以直接分配具体的数组空间。 ...
5.字符
指针
和
指针
数组
1.定义 字符
指针
:指向字符的
指针
;这是最简单的运用! void main() {
char
*ptr = NULL;
char
ch = 'a'; ptr = &ch; *ptr = 'b'; printf("%c\n", ch); system("pause"); } 在C语言中,没有字符串类型,字符串类型一般使用字符数组来描述;但是大家需要将字符数组与字符串区分开来! 在C语言中,一般使用字符
指针
来指向字符串!利用数组和字符
指针
表示的字符串有着本质的区别! ch
多维数组的
指针
类型转换和参数传递
总结: 一维和多维数组的数组名,是一个
指针
,这个
指针
指向的是该数组的第一个“元素”。例1:
char
*p0;
char
buf
0[2] = {1}; p0 =
buf
0;
char
*p0; 表示定义一个指向
char
型的
指针
。便于理解可以写成
char
(*p0); *p0是
指针
,指向
char
类型。例2:
char
(*p1)[4];
char
char
* 与
char
[]区别总结
1.先上结论 c++代码里头经常见到
char
* 与
char
[]的写法,这两种写法都可以表示一个字符串。比如: void
char
code() {
char
* a = "c1";
char
b[] = "c2"; printf("a=%s, b=%s", a, b); } 上面这段代码,最后输出的结果为 a=c1, b=c2 所以这两种方式都可以表示字符串,那么区别到底是什么?我们先说结论,后面再来分析:
char
* 这种方式表示常量
指针
,
char
[] 这种表示
指针
常量! 2
指针
数组案例讲解
char
*
buf
[3]
指针
数组的两种用法(菜单 命令行)
C语言
70,019
社区成员
243,267
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章