wzppp 发表于 2022-5-4 00:57:34

通过scanf和->赋值的问题

求教,
void getInput(struct Node *grade)//此处疑问,为什么scanf不能通过->直接给结构体中的value赋值
{
        int num = 1;
      printf("请输入学生%d姓名:",num);
      scanf("%s",&grade->name);
      printf("请输入成绩:");
      scanf("%d",&grade->value);
        printf("%d\n",grade->value);
}
->符号含义是,指向结构体成员并取其子数据,添加“&”取地址符号这样赋值的时候都可以赋值。
但是字符串赋值的时候,可以没有“&”取地址符号,也可以运行,而数值赋值时,没有“&”取地址符号就会退出程序,这是为什么?

jhq999 发表于 2022-5-4 06:28:27

它需要的是实参的地址,这样才能修改实参的数据,因为实参不会随形参的改变而改变

FK二十一 发表于 2022-5-4 09:36:36

ok的,还不行把代码发出来
页: [1]
查看完整版本: 通过scanf和->赋值的问题