黑马程序员技术交流社区

标题: 对于结构体不是明白,希望能列举简要的程序加以解释! [打印本页]

作者: FlyTrem    时间: 2014-3-16 12:39
标题: 对于结构体不是明白,希望能列举简要的程序加以解释!
本帖最后由 FlyTrem 于 2014-3-23 17:40 编辑

如下面的:
struct a  

     {  

          int m[3][5];  

          float f;  

          char s[20];  

     }y[4];  

大括号后面是可以定义任何变量的吗?可以换行定义不?
如何访问结构a中结构变量y[2]的这个变量呢?
访问好像要要访问的变量.变量名?那个“.”是什么意思?

   希望有人帮忙,在此谢谢了!   

作者: 氯化钾    时间: 2014-3-16 13:51
朋友  你这么理解结构体 其实 他是一种自定义的类型 在一定程度上说 他与int float double 是一样的 是一个数据类型 而这个数据类型他是一个什么样子的呢? 是你自定义的 就如 你定义一个int  你就可以存储整数 而你定义的这个结构体中含有一个二维数组 一个float 一个字符串数组 关于第一个问题 你可以理解为  int y[4];其实是一个道理的 第二个问题 其实 不是结构体中访问y2 而是 y[2]是你这个结构体的一个变量 第三个问题 那个“.”其实是访问结构体的内容 如果你想知道y[2]变量汇总 FLOAT类型的 f的变量值  你就可以  floattemp = y[2].f ; temp就得到这个值了 这些都是我个人的理解 如果有不对的 还望指正
作者: 沙洲冷    时间: 2014-3-16 14:26
补充一点,结构体不可以换行定义的,一般定义结构体变量或者结构体数组都是紧跟着大括号后面的,想换行定义,可以这样写:struct a         {              int m[3][5];              float f;              char s[20];         };struct a y[4];
作者: z82454642    时间: 2014-3-16 15:19
结构体可以理解为一种数据类型
  1. struct a {  
  2.     int m[3][5];  
  3.     float f;  
  4.     char s[20];  
  5. };
复制代码

你可以理解a为一种类型
然后定义一个a类型的数组y[4]
struct a y[4];
表示数组y里面的包含4个 a 类型的元素
每个元素内包含3个变量 int m[3][5];   float f;   char s[20];  
y[2]代表的是数组y内的第2个元素,访问y[2]内的成员变量,用y[2].f/y[2].s/y[2].m
意思就是y[2]内有这几个成员变量,这几个变量属于y[2],要访问这几个变量,得先找到他y[2],才能访问他们

作者: 董月峰    时间: 2014-3-16 18:59
比如人这个结构体里面包含 四肢,脑袋 身体,然后四肢也可以写成结构体形式,里面有手和脚。
人.四肢就是人的四肢的意思,四肢.手就是四肢的手的意思




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2