如何在函数内部修改结构体的char值?

include <stdio.h>

struct st2
{

char name[20];//姓名
int age;//年龄
double c;//double数

};
void init(struct st2* temp)
{

temp->age = 10;
temp->name = "zhangsan";//此处报错
temp->c = 3.1415926;

}
int main()
{

struct st2 a = { 0 };
init(&a);
printf("%d", a.age);
printf("%s", a.name);

}

阅读 2.3k
1 个回答

先说必要的:

  1. 如果有修改行为,就不要使用 const 修饰,这会导致编译警告。
  2. 直接给 char[] 赋值一个字符串常量的行为,只能在初始化时使用。而后想要以类似的方式修改 char[],请使用 strcpy()

其他的:

  1. a 声明时,缺少了 struct 关键字。
  2. 想使用 init() 修改结构体,那么请传递指针。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题