C语言实现返回字符串函数的四种方法
前⾔
C语⾔返回字符串函数共有四种⽅式,分别如下:1. 使⽤堆空间,返回申请的堆地址,注意释放2. 函数参数传递指针,返回该指针
3. 返回函数内定义的静态变量(共享)4. 返回全局变量下⾯来看看详细的介绍
其实就是要返回⼀个有效的指针,尾部变量退出后就⽆效了。使⽤分配的内存,地址是有效
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 \ s[len-1] = 0; }
return s; }
或才使⽤局部静态变量
char* fun() {
static char s[100]; strcpy(s, \"abc \"); return s; }
这种⽅式需要注意,不要修改返回的这个字符串,由于是共享地址,对它的修改会反应到每个调⽤者的。可以这样:
const char* fun() {
static char s[100]; strcpy(s, \"abc \"); return s; }
还有⼀种是使⽤全局变量
char g_s[100]; char* fun()
{
strcpy(g_s, \"abc \"); return s; }
同样的,也要注意这个变量可存储的最⼤空间。总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家学习或者使⽤C语⾔能有所帮助,如果有疑问⼤家可以留⾔交流。
因篇幅问题不能全部显示,请点此查看更多更全内容