返回介绍

6.6.2 指针作为函数返回值

发布于 2025-04-11 22:33:01 字数 1062 浏览 0 评论 0 收藏 0

在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。