标题:请教void*指针怎么用?
只看楼主
小贝01
Rank: 1
等 级:新手上路
帖 子:34
专家分:7
注 册:2013-4-1
结帖率:100%
 问题点数:0 回复次数:11 
请教void*指针怎么用?
请教void*指针怎么用?
搜索更多相关主题的帖子: void 
2013-04-06 09:34
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
得分:0 
一般情况下没有什么用 在通用程序设计时 用于接收不指定类型的指针参数
自己需要实现对该void*指针的处理 因为接收void*的函数不知道他具体是什么 只有调用者知道 所有调用者需要提供具体处理方法
比如写一个实现任意类型数据比较的通用函数 comp
一般形式如下
bool comp(void *p1, void *p2, bool cmp(void*,void*))
{
    return cmp(p1, p2);
}

你在调用时 就需要根据具体情况 自己实现cmp 并传递给comp 当然这里的comp一般是比较复杂的算法函数 比如高级排序算法等

在C++中 因为有了模板 可以进行大型复杂的泛型程序设计 C语言中这样纠结的使用方式就不需要了

人生是一场错过 愿你别蹉跎
2013-04-06 15:55
尹金魁2031
Rank: 3Rank: 3
来 自:河南省南阳市
等 级:论坛游侠
帖 子:156
专家分:162
注 册:2012-12-29
得分:0 
就我们目前接触到的事用void代替int ,可以省略return 0;.
2013-04-06 18:16
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
以下是引用尹金魁2031在2013-4-6 18:16:46的发言:

就我们目前接触到的事用void代替int ,可以省略return 0;.

答非所问了,呵呵...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-04-06 19:02
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
基本上void*是一种无类型指针...
具体的应用的话,我用得不多,不知道怎么跟你解释...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-04-06 19:03
mskeheng
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:48
专家分:179
注 册:2013-3-13
得分:0 
空指针可以作为函数形参,从而编写通用函数。
空指针赋值给具体指针时需要用到强制类型转换,而且不能进行相关运算,像p++
2013-04-06 22:37
王捉熊
Rank: 2
等 级:论坛游民
帖 子:46
专家分:61
注 册:2012-10-23
得分:0 
void *用作函数形参时,可以接受任何类型数据的地址;
当void *定义数据时,表示空类型,占四个字节。

新手上路,说错请勿见怪!
2013-04-06 22:59
小贝01
Rank: 1
等 级:新手上路
帖 子:34
专家分:7
注 册:2013-4-1
得分:0 
回复 楼主 小贝01
可以把int*赋给void*吗?
main()
{
void *a;

printf(“a=%d\n“,*a);
return 0;
}


[ 本帖最后由 小贝01 于 2013-4-8 22:00 编辑 ]
2013-04-07 21:04
小贝01
Rank: 1
等 级:新手上路
帖 子:34
专家分:7
注 册:2013-4-1
得分:0 
回复 2楼 fanpengpeng
可以把int*赋给void*吗?
main()
{
void *a;
printf(“a=%d\n“,*a);
return 0;
}


[ 本帖最后由 小贝01 于 2013-4-8 21:59 编辑 ]
2013-04-07 21:05
小贝01
Rank: 1
等 级:新手上路
帖 子:34
专家分:7
注 册:2013-4-1
得分:0 
以下是引用mskeheng在2013-4-6 22:37:46的发言:

空指针可以作为函数形参,从而编写通用函数。
空指针赋值给具体指针时需要用到强制类型转换,而且不能进行相关运算,像p++

进行强制类型转换回不会得到不正确的结果?
2013-04-07 21:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-403123-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042856 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved