鱼C论坛

 找回密码
 立即注册
查看: 1972|回复: 8

求解,结构体类型,实在想不明白

[复制链接]
发表于 2013-11-1 21:41:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
struct Student      //声明结构体类型Student
{
int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}student1,student2;     //定义两个结构体类型Student的变量student1,student2
    前面不是声明了结构体的名称了吗?为什么后面加上student1,student2,这是起什么作用啊? 一般引用结构体里面的变量不这样的吗? Student.num或Student.sex 这样引用吗?求解???????  student1.num这样和Student.num 是一样吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-2 00:12:31 | 显示全部楼层
1.前面是定義結構體——它叫什麽名字、包含哪些成員...
2.sthdent1和student2是結構體類型Student的兩個變量
3.不能Student.num那樣引用
4.不一樣,student1.num才是有效引用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-2 00:31:54 | 显示全部楼层
本帖最后由 用双手成就梦想 于 2013-11-2 00:33 编辑
  1. struct Student      //struct Student 是一个自定义的结构体类型  它包含以下成员
  2. {
  3. int num;
  4. char name[20];
  5. char sex;
  6. int age;
  7. float score;
  8. char addr[30];
  9. }student1,student2;//是该结构体的变量,
复制代码
student1.num和.num 是不一样的因为 Student  不是该结构体的变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-2 09:10:16 | 显示全部楼层
{:1_1:}为什么不明白呢?其实个人觉得这里有一点点面向对象的思想,student只是一个模版,不能直接使用,而student1,student2,才是两个有实在意义的结构体变量,例如:char ch1,ch2 这种数据类型  哪位什么不能sizeof(char)  呢?只能sizeof(ch1)  这就是不能student的原因   望LZ理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-2 10:43:05 | 显示全部楼层
  1. struct Student      //声明结构体类型Student
  2. {
  3. int num;
  4. char name[20];
  5. char sex;
  6. int age;
  7. float score;
  8. char addr[30];
  9. };
  10. struct Student student1,student2;
复制代码
这个代码简写为:

  1. struct Student      //声明结构体类型Student
  2. {
  3. int num;
  4. char name[20];
  5. char sex;
  6. int age;
  7. float score;
  8. char addr[30];
  9. }student1,student2;
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-2 21:48:57 | 显示全部楼层

那么说,sthdet1.num   和sthdet2.num 是一样的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-3 03:24:10 | 显示全部楼层
你把struct Student 整体理解成一个如char,int之类的变量就好理解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-11-3 07:34:23 | 显示全部楼层
看来LZ的确是没搞清楚 你知道int i;是吧
首先

  1. struct Student      //声明结构体类型Student
  2. {
  3. int num;
  4. char name[20];
  5. char sex;
  6. int age;
  7. float score;
  8. char addr[30];
  9. };
复制代码
就像你说的声明结构体类型Student 就像VC帮我们定义了int一样
后面跟student1,student2就相当于定义好这个结构体在写
  1. student student1,student2;
复制代码
就是定义了student类型的两个变量
还有不能写Student.num或Student.sex 应为student不是变量名 student1才是变量名才可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-3 18:19:19 | 显示全部楼层
牡丹花下死做鬼 发表于 2013-11-3 07:34
看来LZ的确是没搞清楚 你知道int i;是吧
首先就像你说的声明结构体类型Student 就像VC帮我们定义了int一样 ...

谢谢啦!我编程序试了下。student1.num 和student2.num两个是不同的变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 19:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表