c语言字符串指针作函数参数。

以前学函数值传递和引用传递的時候用的例子是整型变量在中详细说明了值传递和引用传递。

但是如果是字符串变量今天又有点迷糊了!

先说总结: 要想用指针传递通过函数改变主函数中字符串指针变量的值,必须使用char**的二级指针!

先举个例子(错误示范)

本来想通过func函数改变s的值结果并没有改变,还是输出123456
 
因为以前值传递和指针传递时用的例子是整型变量指针传递时用一级指针就可以通过函数改变主函数中的变量的值;
换成字苻串变量,乍一看也是一级指针
但是你要明白: 字符串指针的定义是什么? char* s; char*本来就仅仅是一个字符串指针变量的类型! s存的是一个字苻串的首地址值所以你要通过函数改变字符串指针变量的值,就得用char**二级指针!
 
}
编写一个函数string_in(),它接受两个字符串指针参数如果第二个字符串被包含在第一个字符串中,函数就返回被包含字符串开始的地址例如,string_in("hats","at")返回hats中的a的地址...

请教下我错在哪里!运行出来没结果!

//while(1)没有问题问题是你的函数根本没有被调用到,当然什么东西都没有了还有,不能return NULL那样当没有结果时会出错,所鉯返回s1,也就是'\0'的地址输出一个特殊符号表示没有结果。

中间 我加了break语句;可以跳出循环吧!不过那个if确实要改下应改为if(*s2=='\0||*s1=='\0')break;这样全面点!

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信