关于c语言中利用结构体指针函数给结构体赋值的问题

#include<stdio.h>
#include <string.h>
struct student
{
int age;
double height;
char name[100];
}a;
void f(struct student *q)
{
(*q).age = 18;
(*q).height = 184.5;
strcpy((*q).name, "オウクモトウ");
}
int main()
{
f(&a);
printf(" %s\n 年龄:%d\n 身高:%lf\n",a.name, a.age, a.height);
}
以上代码本质很简单,但是我没搞清楚为什么给结构体a中name这个变量赋值的时候要用strcpy函数,而直接使用(*q).name = "オウクモトウ";会报错……
各位大佬专家能不能给我解释一下这种情况下用上述两种方式的区别和为什么要用strcpy函数么?????

*q指向的是字符数组的值,是无法直接改变的,只有通过指针或下标修改每一位的值,strcpy函数本质上也是这样实现的。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答