首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么p->id会报错?解决思路

2012-02-27 
为什么p-id会报错?scanf( %s%d ,p- name,&p- id)为什么p- id报错,要用&p- id而p- name却可以?#in

为什么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不是变量是什么?

热点排行