首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这个是为什么解决办法

2012-06-07 
这个是为什么#include stdio.hint test_func(char *str){str hillreturn 0}int main(){char *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。。

[解决办法]
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。。

热点排行