c语言能返回字符串吗,C语言实现返回字符串函数的四种方法

本文介绍了C语言中返回字符串的四种方法:使用堆空间分配并返回,通过参数传递指针,使用静态变量和全局变量。每种方法都有其特点和注意事项,例如需释放分配的内存,以及静态变量的共享特性。文章还提到了函数参数和返回值的拷贝过程。
摘要由CSDN通过智能技术生成

C语言实现返回字符串函数的四种方法

前言

C语言返回字符串函数共有四种方式,分别如下:

使用堆空间,返回申请的堆地址,注意释放

函数参数传递指针,返回该指针

返回函数内定义的静态变量(共享)

返回全局变量

下面来看看详细的介绍

其实就是要返回一个有效的指针,尾部变量退出后就无效了。

使用分配的内存,地址是有效

char *fun()

{

char* s = (char*)calloc(100, sizeof(char*) );

if (s)

strcpy ( s , "abc " );

return s;

}

但这种方式需要注意,必须由使用将将返回的地址free掉

将地址由入参传入

char* fun(char*s)

{

if (s)

strcpy(s, "abc ");

return s;

}

这种方式调用都要注意给s分配的大小是足够。

可以这样:

char* fun(char*s, int len)

{

if (s)

{

strncpy(s, "abc ", len-1);

s[len-1] = 0;

}

return s;

}

或才使用局部静态变量

char* fun()

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值