免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5304 | 回复: 14
打印 上一主题 下一主题

char *a=* (char**) p1 什么意思啊? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-17 19:29 |只看该作者 |倒序浏览
有个函数:
static  int scomp(const void *p1,const void *p2)
{
      char *a=*(char**)p1;
       char *b=*(char**)p2;
   //这两个类型转换没有看明白,请高手指教下.谢谢
       return   strcmp(a,b);
}

论坛徽章:
0
2 [报告]
发表于 2008-08-17 19:35 |只看该作者
原帖由 heefly 于 2008-8-17 19:29 发表
有个函数:
static  int scomp(const void *p1,const void *p2)
{
       char *a=*(char**)p1;
       char *b=*(char**)p2;   //这两个类型转换没有看明白,请高手指教下.谢谢
       return   strcmp(a ...


int main()
{
        char *p1 = "hello";
        char **p2p = &p1;
        void *vp = p2p;
        char *p2 = *(char **)vp;
        printf("%s", p2);
}
尝试这段代码 就知道了

论坛徽章:
0
3 [报告]
发表于 2008-08-17 19:52 |只看该作者
原帖由 blizzard213 于 2008-8-17 19:35 发表


int main()
{
        char *p1 = "hello";
        char **p2p = &p1;
        void *vp = p2p;
        char *p2 = *(char **)vp;
        printf("%s", p2);
}
尝试这段代码 就知道了

对不起,我也没看懂,什么意思?

论坛徽章:
0
4 [报告]
发表于 2008-08-17 19:58 |只看该作者
原帖由 qliu00 于 2008-8-17 19:52 发表

对不起,我也没看懂,什么意思?


我只是想给ls看一个类型转换序列
至于ls高手您 就别插科打诨了
我们实在不对路

论坛徽章:
0
5 [报告]
发表于 2008-08-17 21:55 |只看该作者
请2楼讲解下这样转换的必要性和优点

论坛徽章:
0
6 [报告]
发表于 2008-08-17 22:42 |只看该作者
原帖由 blizzard213 于 2008-8-17 19:58 发表


我只是想给ls看一个类型转换序列
至于ls高手您 就别插科打诨了
我们实在不对路

只是让你给我们讲清楚,这么不耐烦

论坛徽章:
0
7 [报告]
发表于 2008-08-17 22:48 |只看该作者
原帖由 lukeden 于 2008-8-17 21:55 发表
请2楼讲解下这样转换的必要性和优点

没有优点啊 只想说明这样转换路径的存在性
从而解释lz的代码
char ******(n个) p1= *(char *****(n-1个))p2;

[ 本帖最后由 blizzard213 于 2008-8-17 22:50 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2008-08-17 23:12 |只看该作者
一般是为了方便传参数,很多指针类型都可以强制转换成void*
甚至int也可以转成void*
man pthread_create看看
或者
man qsort看看

论坛徽章:
0
9 [报告]
发表于 2008-08-18 12:58 |只看该作者
看了2楼的代码,在机器上运行了一下,想了想,是不是这个意思啊?

先把void *型转换为一个char的2维数组,再取这个数组的第一个元素,给char*a  ,对吗?

论坛徽章:
0
10 [报告]
发表于 2008-08-18 13:47 |只看该作者
原帖由 heefly 于 2008-8-18 05:58 发表
看了2楼的代码,在机器上运行了一下,想了想,是不是这个意思啊?

先把void *型转换为一个char的2维数组,再取这个数组的第一个元素,给char*a  ,对吗?



是地址
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP