linux下c语言关于指针和字符串函数调用的问题—段错误

2024-11-06 08:52:40
推荐回答(2个)
回答(1):

printf("%s\n",p1);//p1代表的是字串首地址。
*p="goodbye"; //编译时会出错。正确格式p="goodbye";

char *func() //函数指针的写法,返回一个指针,如库函数malloc,返回就是一段内存块的首地址。
你的程序是两次输出hello,如果要将指针内容更改,可以使用你说的这个格式char *func()

#include "stdio.h"
char *func();
int main()
{
char *p1="hello";
printf("%s\n",p1); /* 正确输出 hello,*p1的首地址 */
p1=func(); /* 获得goodbye的首地址 */
printf("%s\n",p1);
getch();
return 0;
}
char *func()
{
char *p;
return p="goodbye"; /*将goodbye的首地址传回*/
}

回答(2):

*p1是指的字符串的中的一个字符,要求输出的是整个字符串