永发信息网

c语言中结构的赋值问题

答案:2  悬赏:30  手机版
解决时间 2021-02-01 20:15
type struct snode{
int i;
struct snode next;
}student;
student *p,*head;
那么p=head和p=head->next有什么区别吗?
还有上面的结构和type struct{
int i;
...
}student有什么区别?
最佳答案
p=head和p=head->next有什么区别吗?

这个当然有区别,head的首地址指向的是结构体中的 i 成员变量,也就是head->i的地址。(注意是首地址,而不是等于p=head->i。且p=head->i,等号两边的类型不同,编译是不会通过的)
而head-->next指向的是另一个成员变量。
这两个成员变量并不一样。

两种结构体有什么区别?
首先,那个type是不是写错了,应该是typedef呢。
这两个结构体的写法,达到的目的是相同的,将一个结构体命名为student。
区别在于
第一个,是将 “struct snode” 结构体,命名为student,让后面使用到的程序能通过student标示,知道使用的是“struct snode”结构体。
第二个,是将一个没有命名的结构体,命名为student,让后面使用到的程序能通过student标示,知道使用的是这个没有命名的结构体。
全部回答
之所以出现你说的问题,是因为当执行 for(i=0;i<3;i++) scanf("%c %d %f",&stu[i].name,&stu[i].a,&stu[i].b); 这步的时候,由于回车也算是一个字符,循环的时候把回车也赋给name了/所以输出的时候就会错误了.想解决这个问题只要把回车那个字符给吃掉就可以了.把这个循环改成: for(i=0;i<3;i++) { scanf("%c %d %f",&stu[i].name,&stu[i].a,&stu[i].b); getchar(); } 就没问题了.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
临汾东关学校和临汾实验学校那个好
厚度均为400mm,但材质衰减不同的两个锻件,
蚤虱的意思是什么啊?知道的请说下!
现在的中学生适合用什么牙膏? 10分
快递奢侈品会被掉包么
【有关秋天的文章】有关秋天文章的题目
谁学过心的翅膀(小学6年级杨丽红写的)?
油漆反白怎么解决
求银河护卫队2种子有字幕的最好不要ts版
微信戒色专家是什么号,在里面发帖子,朋友圈
留难(-nàn)的意思是什么啊?知道的请说下
有一个直径是8m的圆形花坛,在它的外围修一条
楚英小学在娄底什么地方
采用沸水消毒蔬菜和水果,浸泡时间应该在( )
synplify和synplify pro的区别
推荐资讯
女人单身而且还四十几岁了没有工作怎么办
专业的摄影需要有哪些工具
拜访 探访 访问三个词用法的区别
摸x是什么意思
飞鸿的意思是什么啊?知道的请说下!
做冷肉煮肉时,什么时候放盐?
以下几类细胞观察不到染色体的是①乳酸菌②根
名州小车汽配维修厂地址在什么地方,想过去办
鼓鱼的意思是什么啊?知道的请说下!
河北石家庄联通固话按提示设置呼叫转移后一直
汽车轮胎什么时候该换
老公说这个月拿了一千三百多给我了,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?