一个指针作为参数调用函数的问题

xwchena 2001-07-19 09:43:48
我做了如下变量定义:
short i=123;
char *msg=(char*)&i;
short val;

并且把msg和val作为参数调用下面的函数,Change(msg,&val)
想把msg从char*型转化为short型,并且用val来存放转化后的结果,但是运行结果val不是123,这是为什么?

USHORT Change(char *Msg,short *retval)
{
retval=(short*)Msg;
if(*retval==123)
AfxMessageBox("equal");
else
AfxMessageBox("not_equal");

return 1;
}
...全文
59 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xwchena 2001-07-19
  • 打赏
  • 举报
回复
搞定!谢谢
azurecrystal 2001-07-19
  • 打赏
  • 举报
回复
同意
yug 2001-07-19
  • 打赏
  • 举报
回复
注意这里:
retval=(short*)Msg;
这只是修改了指针retval的值,使得retval指向Msg,但并没有修改val的值.
正确的代码应该是:
*retval=*(short*)Msg;

69,369

社区成员

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

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