为什么p->id会报错?
scanf( "%s%d ",p-> name,&p-> id);
为什么p-> id报错,要用&p-> id而p-> name却可以?
#include <stdio.h>
struct user
{
int id;
char name[50];
} u;
char c;
struct user *p;
int main(){
p=&u;
printf( "请您输入姓名:\n ");
scanf( "%s%d ",p-> name,&p-> id);
printf( "%s\t%d\n ",p-> name,p-> id);
printf( "\nID:%d\n ",(&u)-> id);
return 0;
}
[解决办法]
p-> name这是一个指针
p-> id这是一个变量。所以需要&
[解决办法]
数组名实际上是一个地址.
scanf就是要往一段个空间里放值,对p-> id,是个变量,要找到它的地址.对p-> name,已经是地址了.
[解决办法]
数组名当然是指针了.int id不是变量是什么?