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. 自已的sql server练习小记

    print getdate(); print datediff(year,'1987-09-13',getdate()) select * from CallRecords select top 5 ...

  2. mysql 5.7.22 解压缩安装

    1.下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 直接点击下载项 下载后: 2.可以把解压的内容随便放到一个目录,我的是如 ...

  3. java 加载properties

    /** * 取得属性值,无值时返回默认值 * @param name String 属性名称 * @param defaultValue String 属性名称 * @return String 属性 ...

  4. css类选择器中 空格 逗号 啥都不填的区别及其他笔记

    .a.b 代表 一个元素上 同时 有 a 类 和 b 类 .a .b (中间有空格) 代表 .b 是 .a 的子元素选择. .a,.b 代表 class='a' 和 class='b' 都会被选择上.

  5. LeetCode记录之26——Remove Duplicates from Sorted Array

    国外的表达思维跟咱们有很大差别,做这道题的时候很明显.简单说本题就是让你把有序数组中的重复项给换成正常有序的.比如 1 2 2 3换成 1 2 3 3,根本不需要考虑重复的怎么办,怎么删除重复项等等. ...

  6. docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled (Client.Timeout exceeded while awaiting headers).

    docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled ...

  7. WordPress 设置GeoIP数据库目录权限时错误解决方案

    存在一个问题 更新完WP-statistics后,不知道为什么出现了一个错误提示:设置GeoIP数据库目录权限时错误,请确保您的Web服务器有权限写入到目录/var/www/html/wordpres ...

  8. HDU - 2089 数位DP 初步

    中文题目,不要62和4 从高位往低位DP,注意有界标志limit的传递 dp2记忆有界情况下的计数结果,据说用处不大 我所参考的入门文章就是半搜索(有界)半记忆(无界)的 进阶指南中提出dfs维度有多 ...

  9. php 的基本语法

    八种数据类型: 4种标量类型:boolean.integer.float.string 2种复合类型:array.object 2种特殊类型:resource.NULL 如果想看某个表达式的值和类型用 ...

  10. Oracle sql语句中不支持boolean类型(decode&case)

    [转自] http://blog.csdn.net/t0nsha/article/details/7828538 Oracle sql语句中不支持boolean类型(decode&case) ...