为什么是返回字符指针的函数

马振宇 2019-10-26 05:49:18
void *pf(char*)//pf 是一个返回字符指针的函数 上面这句话是是书上写的,有点不理解,为什么就是返回字符指针了,前面是void啊,并没有指明特定类型
...全文
197 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
六道佩恩 2019-10-28
  • 打赏
  • 举报
回复
引用 3 楼 马振宇 的回复:
[quote=引用 2 楼 六道佩恩 的回复:]不是void,是void* 这个星号不能忽略,这是指针类型 所以这个函数会接收一个char*指针,返回一个void*指针 而void*和其他指针是兼容的,可以随意转换
那应该是返回void指针,也不是字符指针啊[/quote] 我说了呀,void*指针和其他指针是兼容的啊,可自动转换、随意转换,你随后一句话都不看的吗? 简单来说, char *p = (void*)q void* p = (char*)q 这两种都没问题,你这返回的void*指针,你用任何一种类型的指针变量接收都可以
wowpH 2019-10-27
  • 打赏
  • 举报
回复
引用 8 楼 棉猴 的回复:
[quote=引用 7 楼 wowpH 的回复:] [quote=引用 6 楼 棉猴 的回复:]
这个不行啊。C语言可以不,例如malloc函数不一直都是
int* a = (int*)malloc(sizeof(int) * 10);
这样用啊。。。[/quote] C语言是双向转换的,但是C++是单向转换的[/quote]额,看到了啊。懂了。
棉猴 2019-10-27
  • 打赏
  • 举报
回复
引用 7 楼 wowpH 的回复:
[quote=引用 6 楼 棉猴 的回复:]
这个不行啊。C语言可以不,例如malloc函数不一直都是
int* a = (int*)malloc(sizeof(int) * 10);

这样用啊。。。[/quote]
C语言是双向转换的,但是C++是单向转换的
棉猴 2019-10-27
  • 打赏
  • 举报
回复

wowpH 2019-10-26
  • 打赏
  • 举报
回复
引用 4 楼 马振宇 的回复:
有人知道吗?
调用的地方转换就行了
马振宇 2019-10-26
  • 打赏
  • 举报
回复
引用 2 楼 六道佩恩 的回复:
不是void,是void* 这个星号不能忽略,这是指针类型 所以这个函数会接收一个char*指针,返回一个void*指针 而void*和其他指针是兼容的,可以随意转换
那应该是返回void指针,也不是字符指针啊
六道佩恩 2019-10-26
  • 打赏
  • 举报
回复
不是void,是void* 这个星号不能忽略,这是指针类型 所以这个函数会接收一个char*指针,返回一个void*指针 而void*和其他指针是兼容的,可以随意转换
wowpH 2019-10-26
  • 打赏
  • 举报
回复

70,023

社区成员

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

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