#include <stdio.h>
struct notify {
void *data;
char *name;
};
int get_name(char *sname)
{
int ret;
printf("3 sname addr = 0x%x\n", sname); //接受到传进来的参数后 将地址复制一份放到一个地方
*sname = "sxgd";
return 0;
}
int main()
{
int ret;
struct notify noti;
noti.data = NULL;
noti.name = "abc";
printf("1 name = %s\n", noti.name); // 传递参数之前 noti.name 的值
printf("2 name addr = 0x%x\n", ¬i.name); // 传递之前noti.name的地址
ret = get_name(¬i.name); // 将noti.name的地址作为形参传送过去,
printf("ret = %d\n", ret);
if(!ret){
printf("noti.name = %s\n",noti.name);
printf("noti.data = %s\n",noti.data);
}
return 0;
}
输出:
1 name = abc
2 name addr = 0x48d4f170
3 sname addr = 0x48d4f170
ret = 0
noti.name = sxgd
noti.data = (null)