黑马程序员技术交流社区

标题: 构造类型及结构体 [打印本页]

作者: 956251361    时间: 2016-1-1 11:04
标题: 构造类型及结构体

1:构造类型:根据已定义的一个或多个数据类型用构造的方法来定义的。

一个构造类型的值可以根结成若干个成员或元素。每个成员都是一个基本数据类型或又是一个构造类型。

在C语言中,构造类型有以下几种:
数组类型
结构体类型
共用体(联合体)类型
2:结构体

一、什么是结构体

* 在前面已经介绍了C语言中的数组,用法跟其他语言差不多。当一个整体由多个数据构成时,我们可以用数组来表示这个整体,但是数组有个特点:内部的每一个元素都必须是相同类型的数据。

* 在实际应用中,我们通常需要由不同类型的数据来构成一个整体,比如学生这个整体可以由姓名、年龄、身高等数据构成,这些数据都具有不同的类型,姓名可以是字符串类型,年龄可以是整型,身高可以是浮点型。

* 为此,C语言专门提供了一种构造类型来解决上述问题,这就是结构体,它允许内部的元素是不同类型的。

结构体的定义

1.定义形式
结构体内部的元素,也就是组成成分,我们一般称为"成员"。

结构体的一般定义形式为:

复制代码
复制代码
1 struct 结构体名{
2
3     类型名1 成员名1;
4
5     类型名2 成员名2;
6
7     ……
8
9     类型名n 成员名n;
10
11 };

struct是关键字,是结构体类型的标志。

2:比如,我们定义一个学生

struct Student {
    char *name; // 姓名
    int age; // 年龄
    float height; // 身高
};

上面定义了一个叫做Student的结构体,共有name、age、height3个成员。看到这里是否有点面向对象的味道呢,其实这跟面向对象完全是两码事,只能说感觉有点像。
  1. #include <stdio.h>

  2. int main(int argc, const char * argv[]) {

  3.     //定义一个iPhone结构体
  4.     struct iphoe{

  5.         char *color;
  6.         float screenSize;
  7.         int sn;
  8.         int imei;
  9.     };  //此处的分号不能省略


  10.     //定义一个学生结构体
  11.     struct Student{

  12.         char name[20];
  13.         char sex;
  14.         int age;
  15.         float score;
  16.         int sno;

  17.     };

  18.     return 0;
  19. }
复制代码




作者: 明阳天夏    时间: 2016-1-3 12:35
有苦劳。。。。。。。。。。。。。。。。




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