读书人

这个是为什么解决办法

发布时间: 2012-06-07 15:05:14 作者: rapoo

这个是为什么
#include <stdio.h>
int test_func(char *str)
{
str = "hill";
return 0;
}
int main()
{
char *str = "stones";
test_func(str);
printf("%s\n",str);
return 0;
}


为什么输出是stones。。

[解决办法]
str 指针本身又没有改变

如果希望str指针改变,就需要修改test_func函数的参数,使用指针的指针
[解决办法]
是形参和实参的问题,test_func(str); 是把str实参传给了你自定义的形参*str,int test_func(char *str)
,然后在你自定义函数里str = "hill";改变的是形参,而不是你main函数里的实参

注意:test_func(str); 里的str(实参)与int test_func(char *str)里的*str(形参)不是一个参数

[解决办法]

探讨
#include <stdio.h>
int test_func(char *str)
{
str = "hill";
return 0;
}
int main()
{
char *str = "stones";
test_func(str);
printf("%s\n",str);
return 0;
}


为什么输出是stones。。

读书人网 >C语言

热点推荐