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. C#实现WebSocket协议客户端和服务器websocket sharp组件实例解析

    看到这篇文章的题目,估计很多人都会问,这个组件是不是有些显的无聊了,说到web通信,很多人都会想到ASP.NET SignalR,或者Nodejs等等,实现web的网络实时通讯.有关于web实时通信的 ...

  2. flask-restful基础

    flask-restful基本使用 基本使用 from flask_restful import Api,Resource,reqparse,inputs from flask import Flas ...

  3. mysql 查询月份数据.

    //查看本月数据 SELECT *FROMcontent_publishWHEREdate_format(publish_time, '%Y %m') = date_format(DATE_SUB(c ...

  4. PHP请求远程地址设置超时时间

    file_get_contents 请求超时设置 $timeout = array( 'http'=> array( 'timeout'=>5//设置一个超时时间,单位为秒 ) ); $c ...

  5. JAVA数据结构--选择排序

    选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然 ...

  6. JavaScript 中this 初步理解笔记

    Javascript中函数中的this通常指向的是函数的拥有者,这个拥有者就是上下文执行对象:另外一点需要注意,this只能在javascript函数内部使用.

  7. ssm框架搭建出现的异常:The import org.springframework cannot be resolved

    1.检查是否有这个包;是否在maven依赖中添加了spring-context.,检查后我有这个包,而且在仓库中找到了 2.怀疑没有下完整,将其删除又导了一遍,还是报错. 3.后来重启了一遍eclip ...

  8. POJ_1456 Supermarket 【并查集/贪心】

    一.题面 POJ1456 二.分析 1.贪心策略:先保证从利润最大的开始判断,然后开一个标记时间是否能访问的数组,时间尽量从最大的时间开始选择,这样能够保证后面时间小的还能够卖. 2.并查集:并查集直 ...

  9. UVA - 136 Ugly Numbers (有关set使用的一道题)

    Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence1, 2, 3, 4, 5, 6, 8, 9, ...

  10. c# MVC返回小驼峰Json(首字母小写)

    1.与前端交互时,前端总希望传过去的json字段名首字母小写,但是.net规范是首字线大写 如果就写了下面的转换方法 /// <summary> /// Poco类字段名转换成首字母小写的 ...