这个输出a.name为什么是qian,之前被赋值为zhao,又经过b=a的原因吗?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct stu
{
char name;
char g;
int score;
};
void main()
{
struct stu a={NULL,'m',290},b;
a.name=(char)malloc(10);
strcpy(a.name,"zhao");
b=a;b.g='f';
b.score=350;
strcpy(b.name,"qian");
printf("%s%c%d",a.name,a.g,a.score);
}
是的,b=a,b指向的结构体地址和a指向的结构体地址为同一个,所以不管哪一个修改,另一个都会变
b=a的时候他俩是指向一个地址了
因为经过b = a, b.name 指针指向了 a.name的空间
是的,b=a了,所以这俩相当于都在同一空间里,而此时再复制为qian,自然输出的就是qian了。
希望对题主有所帮助,可以的话,帮忙点个采纳!