码迷,mamicode.com
首页 > 其他好文 > 详细

struct的应用

时间:2016-10-11 21:21:00      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

struct是一种数据结构,当需要存储的相关数据为一个集合时,struct是很好的选择;例如,当存储student,学生的学号, 名字,年龄,身高,就构成了一个集合,用stuct声名为:

typedef struct chemical_student_for_uni{
char name[32];
int card_id; int age; int height; }student_c;

struct指名了这个是chemical_student_for_uni结构,typedef为这个结构起了一个别名new_student;

顺便提一下typedef的用法:

1. 隐藏数据的类型,例如给类型取别名;

2. 简化类型定义,同时便于理解;

struct的存储:struct的成员是按照声名的顺序进行存储的,假设student_c存储在内存中的地址为100, 以上student在内存中的存储形式如下:

技术分享

 

 struct结构嵌套:

struct 结构名{
    类型 成员名;
    类型 成员名;
    struct 结构名{
        类型 成员名;
        类型 成员名;
        ...
    }结构变量名;
}结构变量名;

无结构名的struct:

struct{
    类型 成员名;
    类型 成员名;
    ...
}结构变量名;

以下为结构的例子:

(1)当无结构名的struct定义时,必须带上结构变量名,例如:

struct {
    char name[32];
    int card_id;
    int age;
    int height;  
}student;

struct student student_1;

(2)有结构名,但无别名的struct:

struct student{
    char name[32];
    int card_id;
    int age;
    int height;  
};

struct student student_1;

以上两种方式是形成的结果是一样的;

(3)下面这个为带有变量名的的struct,直接定义student_1:

struct student{
    char name[32];
    int card_id;
    int age;
    int height;  
}student_1;

定义时,可用别名来定义: student_c student_1;

(4)带有typedef的struct:

typedef struct student{
    char name[32];
    int card_id;
    int age;
    int height;  
}student_c;

现在当定义时,可以直接使用别名:student_c student_1;

struct的应用

标签:

原文地址:http://www.cnblogs.com/anlia/p/5950443.html

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