秃头大学生 发表于 2022-3-1 19:20:41

小白求问c语言二级题!!感谢解惑

#include < stdio.h>
#include < stdlib.h>
#include < string.h>

struct stu {
char *name, gender;
int score;};

int main()
{
struct stu a={NULL, 'm', 290}, b;
a.name=(char *)malloc(10);
strcpy(a.name, "Zhao");
b= a; b.gender= 'f; b.score =350;
strcpy(b.name, "Qian");
printf( "%s,%c,%d,", a.name, a.gender, a.score );
printf( "%s,%c,%d\n", b.name, b.gender, b.score );}
为啥输出结果为:Qian,m,290 Qian,f,350而不是: Zhao,m,290 Qian,f,350

58869333 发表于 2022-3-1 20:38:04

应该是a.name 和b.name的指针相互指着对方C:\Users\aniki\Desktop\屏幕截图 2022-03-01 203704.png

58869333 发表于 2022-3-1 20:38:59

58869333 发表于 2022-3-1 20:38
应该是a.name 和b.name的指针相互指着对方

屏幕截图 2022-03-01 203704.png

58869333 发表于 2022-3-1 20:41:14

应该是a.name 和b.name的指针相互指着对方因为name是指针当a.name修改时b.name也随之修改
页: [1]
查看完整版本: 小白求问c语言二级题!!感谢解惑