指针引用传入参数问题

ddddfbb 2009-06-05 05:06:44
func(char* &p)
{

}
main()
{
char str[20]={0};
memcpy(str,....);
func(str);<---------------这里参数应该怎么书写
}

我知道 如果 加个
char *tmp(str);
func tmp
可以实现 但是如果就想用str 该怎么书写才对呢?
...全文
79 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fee_Chong 2009-06-05
  • 打赏
  • 举报
回复
char str[] str直接就是栈上的地址了, char* p = "aaaa"; p指向常量,你的fun(char* &p),就是要传进去 &p,即栈上分配的内存地址, 所以说数组直接传个首地址就行了。
ddddfbb 2009-06-05
  • 打赏
  • 举报
回复
func((char*&)str);
这样强制转换后 值肯定是不对的

我是想传进去后直接就把值给改了 懒得用返回的值来麻烦的倒腾 因为原先定义的是数组 那么也不想再修改代码变成char*
goodname 2009-06-05
  • 打赏
  • 举报
回复
恐怕不行啊。

因为引用是另外一个变量的别名,即使强制类型转换之后可行,总觉得挺奇怪的。

得再考虑考虑。
mengde007 2009-06-05
  • 打赏
  • 举报
回复
没必要引用数组啊;
func(char*p)
{
}
不是挺好的吗
tbo1988 2009-06-05
  • 打赏
  • 举报
回复
const指针转换成非const,只能强行
lylm 2009-06-05
  • 打赏
  • 举报
回复
下面的强制转换可以,VC6通过

#include <stdio.h>
void func(char* &p)
{
return;
}
void main()
{
char str[20]={0};
func((char*&)str);
}

damo_xu 2009-06-05
  • 打赏
  • 举报
回复
我的VS2008能通过下面的:
func((char*&)str);

其实这是char* 和char[]的区别问题,楼主搜搜《C专家编程》和《C陷阱与缺陷》这两本书,里面有详尽经典的论述。
lylm 2009-06-05
  • 打赏
  • 举报
回复
不行,LZ用意何在
jkdfjkdf 2009-06-05
  • 打赏
  • 举报
回复
no way

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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