注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

C++中让函数返回字符串  

2011-11-26 10:24:24|  分类: C & C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

首先必须申明,这个标题有点不准确,其实C语言中的函数是无法返回一个字符串的,这里返回的字符串实际上是指向该字符串的指针,即字符数组的首地址。虽然这么做似乎有点投机取巧,不过有个好处是程序的效率会有所提高。例如下面这个函数,用于返回字母表中的前多少位字母:

char* Alphabet(int n)
{
    char* pStr=new char[n+1];//last one for '\0'
    pStr[n]='\0';
    int i;
    for(i=0;i<n;i++)
    pStr[i]=i+97;
    return pStr;
}

注意最后一句,返回的确实是指向字符串的指针。

好了,现在函数有了,该如何调用?使用过程中又有那些注意事项呢?

int main()
{
    char* str=Alphabet(14);
    cout<<str<<endl;
    delete[] str;
    cin.ignore();
    return 0;
}

 调用和普通的函数没有太大区别,只需要意识到返回类型为char*——指针类型即可,但是使用完之后,一定要注意使用该delete[],看起来似乎在main函数中没有使用new,应该不用delete[],但是实际上,这个delete[] 是针对的Alphabet中的new进行的操作,如果忘记了,呵呵,又是C程序员的噩梦——内存泄漏

  评论这张
 
阅读(8492)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016