文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
6.6.2 指针作为函数返回值
在 C 语言中,不仅可以将指针作为函数的参数,还可以让函数返回一个指针,即函数的返回值为指针类型。
在“string.h”头文件中,有许多关于字符串处理的库函数,都会返回一个指向字符串首字符的指针。例如:
char *strcat( char *str1, const char *str2 );
strcat 函数的功能是连接字符串,即将 str2 所指向的字符串内容附加到 str1 所指向的字符串之后,并将最终 str1 所指向的字符串的首字符内存地址(简称为字符串的首地址)作为函数的返回值。
【 例 6-6 】编写程序,由用户输入两个字符串,要求将两个字符串进行合并打印输出。
程序代码如下:
可见,由于 strcat 函数能够返回合并后的字符串的首地址,因此,可以将其作为 printf 函数的参数使用。试想一下,如果 strcat 函数没有返回值,或是返回值并非合并后字符串的首地址,则需要将 strcat 函数调用单独作为一条语句放在 printf 函数调用之前。
编译运行程序,结果如下:
Please enter two strings: red -apple The concatenated string is: red-apple
在定义返回值为指针类型的函数时,必须要注意的是,不要将一个局部动态变量的内存地址作为函数的返回值,例如:
函数体内的变量 i 是一个局部的动态变量,函数将其内存地址作为返回值。由于函数执行结束后动态变量的生命期也将终结,因此,如果使用函数所返回的指针来访问对象时就会出现错误,造成程序崩溃。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论