码迷,mamicode.com
首页 > 编程语言 > 详细

C语言 结构体 共用体和用户自定义类型

时间:2018-08-27 12:36:08      阅读:356      评论:0      收藏:0      [点我收藏+]

标签:自定义数据类型   core   变量   zha   arp   必须   day   声明   标识符   

基本类型:整型、字符型、实型、双精度型和空值型

派生型:指针和数组

用户构造类型

用户定义类型:对已有的类型,另外说明一个新的类型标识符。

结构体:把具有相互关系的不同类型的数据组成一个有机的整体

共用体:又称联合体,使几种不同类型的变量共用一段存储空间。

14.1 用typedef说明一种新类型名


typedef 类型名 标识符;

作用: 用“标识符”来代表已存在的“类型名”,并未产生新的数据类型,原有的类型名依然有效。

例如:typedef int INTERGER;

INTERGER m,n; 等价于 int m, n;

如:typedef char *CHARP;

      CHARP p; 等价于char *p;

14.2 结构体类型

如:一条学生记录(student),包含如下数据项:姓名(name):字符串、性别(sex):字符型、出生日期(birthday):date结构体、四门课成绩(SC):一维实型数组

结构体是一种构造数据类型

用途:把不同类型的数据组合成一个整体——自定义数据类型

结构体类型的变量、数组和指针变量的定义

1.紧跟类型说明之后定义变量

struct student

{

    char name[20];

    struct date birthday;

    char sex;

    int score[4];

}std, pers[3], *pStd;

结构体变量中的各成员在内存中按说明的顺序依次存放

2.声明无名结构体时直接定义变量,即将其中的student省略掉

struct date
{
    int year;
    int month;
    int day;
};
struct student
{
    char name[20];
    struct data birthday;
    char sex;
    int score[4]; 
};

结构体嵌套定义

struct student
{
    char name[20];
    struct
    {
         int year;
         int month;
         int day;
     }birthday;
     char sex;
     int score[4];
};

3.先声明结构体类型,再使用类型定义变量

struct student

{

…………

};

struct student std, pers[3], *pStd;

4.使用typedef重新声明一个结构体类型名,然后用新类型名字定义变量

typedef struct
{
……
}student;/Student 是结构体的类型的一个新名字而已,如 int char 他们一样,不用再写struct
student std, pers[3], *pStd;

结构体类型的变量、数组赋初值

1.结构体变量赋初值

  • 按顺序在花括号里给对应的成员变量赋初值
  • 赋初值必须一一对应
  • 不允许跳过前面的成员变量,只给前面部分赋初值,则后面系统默认给零
struct date
{
    int year;
    int month;
    int day;
};
struct student
{
    char name[20];
    char sex;
    struct date birthday;
    float score[4];};
struct student
std1={"Li Ming",M,1992,10,1,95.5,60,70,88.5},
std2={"Liu Qiang", M, {1995,10,1},{95.5,60,70,88.5}},
std3={"Zhang Ya",F, {1995},{95.5,60}};

 

C语言 结构体 共用体和用户自定义类型

标签:自定义数据类型   core   变量   zha   arp   必须   day   声明   标识符   

原文地址:https://www.cnblogs.com/pangtao/p/9541284.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!