69,371
社区成员
发帖
与我相关
我的任务
分享
char str1[] = "hello";
char *str2 = "hello";
1、return str1 返回的是一个临时变量的地址
2、str2指向的是一个常量字符串,return str2返回的是指向常量字符串的地址,是一直存在的
但这种做法不太好,一般是先动态分配一块内存,用完后free掉#include <stdio.h>
char (& arry1())[12];
char * arry2();
int main(void)
{
char *ch1,*ch2;
ch1 =arry1();
ch2 =arry2();
printf("%s\n",ch1);
printf("%s\n",ch2);
return 0;
}
char (& arry1())[12]
{
static char s[12]="Hello Word!";
return s;
}
char *arry2()
{
char *s="Hello Word!";
return s;
}
-------------------------------------------------------------------------------------------------------------------------------------------
#include <stdio.h>
char * arry1();
char * arry2();
int main(void)
{
char *ch1,*ch2;
ch1 =arry1();
ch2 =arry2();
printf("%s\n",ch1);
printf("%s\n",ch2);
return 0;
}
char *arry1()
{
static char s[12]="Hello Word!";
return s;
}
char *arry2()
{
char *s="Hello Word!";
return s;
}