函数中的局部变量在退出函数时会被销毁
/* 函数中的局部变量在退出函数时会被销毁
* >> 1
* 返回指向字符串常量的指针
*/
char * getstra()
{
return "how are you" ;
}
/*
* >> 2
* 使用全局声名的数组
*/
char global_char[]="how are you";
char *getstrb()
{
return global_char ;
}
/* >> 3
* 使用静态数组
*/
char *getstrc()
{
static char buffer[20];
strcpy( buffer , "how are you" );
return buffer ;
}
/* >> 4
* 显示分配内存,保存返回值
*
*/
char *getstrd()
{
char *s = (char*)malloc(20);
memset( s , 0 , 20 );
strcpy( s , "how are you" );
return s ;
}
/* >> 5
* 调用者分配内存保存返回的值
*/
char *getstre(char *result , int size)
{
char *str = "how are you ";
if(size > strlen(str))
size=strlen(str);
strncpy( result , "how are you" , size );
return result ;
}
int main()
{
printf( "%s\n" , getstra() );
printf( "%s\n" , getstrb() );
printf( "%s\n" , getstrc() );
char *str = getstrd();
printf( "%s\n" , str);
free( str );
char *res = (char*)malloc(20);
getstre(res,20);
puts( res );
free( res );
}
浙公网安备 33010602011771号