hall of fame微盘:c语言结构体的问题!在线等大家帮忙解答!!!

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 15:52:16
struct member{
int sec;
int number;
}
struct class{
int name;
struct member persen;
}
定义结构体变量:
struct class one;
one.name=1;
one->person->sex=o;//o代表是女生
请问大家,"one->person->sex=o"这种语句正确吗???
那改成“one.person.sec=0”正确吗

one.person.sec=0 正确.

不可用名字 class

注意拼写.
persen 和 person
sec 和 sex.
o 和 0.

规矩写法:
#include <stdlib.h>
#include <stdio.h>

typedef struct member{
int sex;
int number;
} member;

typedef struct ccc { //class
int name;
member person; // o
} ccc;

main()
{
ccc one;
one.name=1;
one.person.sex=0; //数字 0,
printf("%d",one.person.sex);

}

不正确,
在调用结构体时,
如果是结构体变量则用.来引用,
比如你的例子中:
想调用name这个成员时用:
one.name=1是正确的,
如果是指向结构体的指针
在调用的时候必须用->来引用:
如你定义了一个结构体的指针:
struct class * p;
p=&one;
此时就可以用:
p->person.sex=0
来引用
你还可以用下面的方式来引用:
(&one)->person.sex=0

最好是自己去思考的比较好的。你怎样认为的呢?
好好学吧!将来的比尔.盖次!哈哈哈。

当然要用.来引用呵呵,不过记得在每个struct最后加;号~~

还有那个class是关键字,换个其他名字就OK了