关于C语言的结构体 高手请进

例如结构体定义如下:structstudent{charname;intnumber;structstudent*next;}以上定义了学生的信息;我想用从键盘输入的形式... 例如结构体定义如下:
struct student{

char name;
int number;
struct student *next;
}
以上定义了学生的信息;
我想用从键盘输入的形式,来增加学生的性别,年龄等信息;
请问:可以这样实现吗,怎么样实现?
很谢谢foraics认真解释
展开
 我来答
匿名用户
2006-01-01
展开全部
可以实现
struct student s1;
scanf("%c,%d",s1.name,s1.number);
注意输入时候以逗号分隔
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
愿做温柔暖人5232
2006-01-01
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
一定要使用 student->next这个结构指针,而且要求不破坏student这个结构的定义吗?这样子如果再想加入性别年龄这种数据,恐怕比较不合适,而且程序看起来也不清晰

一定要的话也可以,定义一个新结构,比如名为detail,detail的第一项是struct student,这样这个第一项的地址实际上和这个struct detail的地址相等,也就是student的next指针和包含这个student结构的detail结构的next指针相等(下面的例子说明了这一点),但是在引用结构指针的时候一定要记住强制类型转换。

#include<stdio.h>

#define MALE 0;
#define FEMALE 1;

struct student
{
char name;
int number;
struct student *next;
};

struct detail
{
struct student lpBasicInformation;
int sex;
int age;
struct detail *next;
};

int main(void)
{

struct detail student1,student2;

student1.lpBasicInformation.name='A';
student1.lpBasicInformation.number=1;
student1.age=18;
student1.sex=MALE;

student2.lpBasicInformation.name='B';
student2.lpBasicInformation.number=2;
student2.age=17;
student2.sex=FEMALE;
student2.next=NULL;
student2.lpBasicInformation.next=NULL;

student1.next=&student2;
student1.lpBasicInformation.next=&(student2.lpBasicInformation);

if(student1.next==(struct detail*)student1.lpBasicInformation.next)printf("Right");//一定不要忘记强制类型转换
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式