如何将函数体中的新字符串返回

1:char * fun(){char *s ="abc";return s;}是可以的,因为"abc"存在静态的常量区域

2:char * fun(){char s[]="abc";return s;}是不可以的,"abc"存储在静态区域,但是在此局部的堆栈中会有一份拷贝,及char s[]="abc"其实创建了俩份数据,return返回的只是拷贝的那部分,即堆栈中局部变量,返回后清空地址就无效了。

 

 

char a[]="abc"; char b[]="abc"; 

a!=b....因为数组变量有自己的空间

char *a="abc";char *b="abc";

a==b....指针不需要内存空间,都是指向同一片静态常量"abc"的区域

posted @ 2014-04-10 15:15  Blue-Dream  阅读(225)  评论(0编辑  收藏  举报