我是C初学者,请大家给看看下面的程序错在哪
目的:通过程序调用实现修改字符串
#include <stdio.h>
int swap_str(char *s)
{
s=”hi”;
return 1;
}
int main()
{
char *msg=”hello”;
printf(“%s\n”,msg);
swap_str(msg);
printf(“%s\n”,msg);
return 1;
}
>> 本文固定链接: http://www.vcgood.com/archives/1917
我是C初学者,请大家给看看下面的程序错在哪
目的:通过程序调用实现修改字符串
#include <stdio.h>
int swap_str(char *s)
{
s=”hi”;
return 1;
}
int main()
{
char *msg=”hello”;
printf(“%s\n”,msg);
swap_str(msg);
printf(“%s\n”,msg);
return 1;
}
>> 本文固定链接: http://www.vcgood.com/archives/1917
你必须先 登录才能发表评论。
最好把原题COPY上来,不过我想大概是你定义函数swap_str时,不应用’='而应该用’==’,主函数结尾那句有些看不懂,
#include <stdio.h>
int swap_str(char **s)
{
*s=”hi”;
return 1;
}
int main()
{
char *msg=”hello”;
printf(“%s\n”,msg);
swap_str(&msg);
printf(“%s\n”,msg);
return 1;
}
楼上弟兄倒数第3行用&啥意思?
他这里是要用&msg把msg的地址传给*S的,然后用*S赋值hl。这样一来字符就直接存在msg里面了。*S等于msg而不能用s来赋值!msg能出现的地方*S就能出现了!!!
逼人愚见,还请指点!!!!!!!!!!