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为这个结构起了一个别名student_c, 那么就可以使用student_c来代替struct chemical_student_for_uni的结构;

顺便提一下typedef的用法:

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

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

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

aaarticlea/png;base64,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" alt="" />

struct结构嵌套:

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

无结构标记的结构变量:

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

以下为结构的例子:

(1)当无结构标记的结构变量声明,例如student_1的声明:

struct {/*无结构标记*/
char name[];
int card_id;
int age;
int height;
}student_1;

(2)有结构标记的结构变量声明:

结构定义:

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

结构变量声明:struct student student_1;

(3)有结构标记的结构变量student_1的声明:

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

(4)带有typedef的无结构标记的声明:

定义别名:

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

定义结构变量名:student_c student_1;

(5)带有typedef的有结构标记的声明:

定义别名:

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

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

C++基础--结构体声名的更多相关文章

  1. C#语言基础——结构体和枚举类型

    结构体和枚举类型 一.结构体(struct) 结构类型是用户自己定义的一种类型,它是由其他类型组合而成的,可包含构造函数.常数.字段.方法.属性.索引器.运算符.事件和嵌套类型的值类型.结构在几个重要 ...

  2. C#基础——结构体

    集合:数组:同一类型,固定长度集合:不同类型,不固定长度 要使用集合,必须先引用命名空间:using System.Collections; 定义:ArrayList arr = new ArrayL ...

  3. go 基础 结构体

    结构体是类型中带有成员的复合类型.go语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性. go语言中的类型可以被实例化,使用new和&构造类型实例的类型是类型的指针. 结构体 ...

  4. OC基础--结构体 枚举做类成员属性

    结构体  枚举作类的成员属性: 定义一个学生类 性别 -- 枚举 生日 入学日期  毕业日期  --  结构体 代码示例: 声明文件 Student.h: #import <Foundation ...

  5. C基础--结构体

    C语言,结构体语法: 1.定义结构体类型: struct 结构体名称 { 成员类型 成员名称1; 成员类型 成员名称2; ... }; 例:struct Date { int year ; int m ...

  6. C基础--结构体成员初始化方式

    之前在linux内核代码中看到结构体成员成员初始化使用类似于.owner = THIS_MODULE, 不太见过,于是搜了个博客,分享下: 转自:http://www.cnblogs.com/Anke ...

  7. C语言基础--结构体对齐,位域,联合体

    结构体对齐 1--结构体对齐的原因与意义 许多计算机系统对基本数据类型的可允许地址做出了一些限制,要求某种类型的对象的地址必须是某个值K(通常是2,4,8)的倍数,而这个k则被称为该数据类型的对齐模数 ...

  8. 2017-3-2 C#基础 结构体

    1. 结构体:用户自定义类型定义位置:定义在Main函数的外面,类的里面 定义格式:struct 自定义名字{ public 数据类型 名字; public 数据类型 名字; ... ...} 声明实 ...

  9. 数据结构基础——结构体struct及类型别名typedef的使用

    一.结构体的创建 在C语言中,实现数据结构的一种常用方法便是使用结构体(structure)其示例代码如下: struct stu { int num; char ch; }; struct表示创建结 ...

随机推荐

  1. 初用sqlite3.exe

    1.记得要先建立数据库文件 为了进行数据库的编写,我安装了sqlite3,由于刚接触数据库,我尝试着建立表,并插入元组,属性,用select from语句也可以调出写入的内容,但是不知道如何保存,直接 ...

  2. js 删除removeChild与替换replaceChild

    <input type="button" value="删除" id="btn" /> <input type=" ...

  3. php 利用 json 传递数组之中文乱码最新解决办法

    json好用,但是如果数据中有中文就会出乱子了,网上解决办法多半是设置utf-8编码或转换字符编码 以下是我的解决办法,利用php的urlencode.urldecode函数(其实也是一种转换编码吧) ...

  4. JavaWeb学习笔记(十)—— JavaBean总结【转】

    一.什么是JavaBean JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方法 ...

  5. elemetnui 分页..解决 bug

    :current-page.sync="thisCurPage" 的确会 修改页码,但是会触发一个 bug... 比如 当前 选择的是第二页,使用 js 模拟 点击(或者修改父组件 ...

  6. Fliptile (dfs+二进制压缩)

    Farmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. He ha ...

  7. 1149 Dangerous Goods Packaging (25 分)

    When shipping goods with containers, we have to be careful not to pack some incompatible goods into ...

  8. vim(一) vim与markdown

    vim markdown 配置 vim高亮显示Markdown语法 在.vimrc添加 Plugin 'godlygeek/tabular' Plugin 'plasticboy/vim-markdo ...

  9. 转 .net数据类型

    .net 数据类型   short s=0; s = s + 1; 和short s=0; s += 1; 这两个表达式有什么区别,会报什么错误? 有区别吗??大家要想想呢还是要测试一下啊,我选择测试 ...

  10. Android:Sqlitedatabase学习小结

    今天刚刚学习完Sqlite数据库的基础知识,随即把学到的东西记录下来,以便随后查阅,以下是自己对Sqlite数据库的小结:1.Sqlite简介       Sqlite是一款轻型的数据库,它包含在一个 ...