请问一个关于传址的问题
请问,为何retval的地址与val 的不同,应该是一个地址啊,且val的最后结果也不是172
#include<stdio.h>
#include<conio.h>
int Change(char *, short *);
void main()
{
short i=172;
char *msg=(char*)&i;
short val;
clrscr();
printf("msg address %x\n",msg);
printf("&val address %x\n",&val);
printf("val %d\n",val);
printf("msg %x\n",*msg);
Change(msg,&val);
printf("&val address %x\n",&val);
printf("val=%d\n",val);
}
int Change(char *Msg,short *retval)
{
retval=(short*)Msg;
printf("retval address=%x\n",retval);
printf("*retval=%d\n",*retval);
return 1;
}