C_Learning(3)
/ 结构体
/ 声明结构体类型的一般形式:
struct 结构体名[--表示的是这个结构体的类型]
{
成员列表
}; [不要漏掉这个";"]
/ 声明结构可以放在main函数内,也可以放在main函数外
/ 定义结构体变量的一般形式:
struct 结构体名 结构体变量名;
如:struct Product product1;
/ 声明结构体的同时定义结构体变量(可以是多个)
如:
struct Product
{
char name[10];
char color[10];
int price;
}product1,product2;
/ 引用结构体变量
/ 不能将结构体变量作为一个整体进行输入输出
/ 对结构体变量进行赋值、存储或运算,实质上就是对结构体成员的操作
/ 引用的一般形式:
结构体变量.结构体成员
如:product1.name="icecream";
product2.price=20;
[相当于,product1.name才是真正的变量]
/ 结构体类型的初始化
如:
(1) struct Student
{
char name[10];
char sex[10];
int grade;
}student1={"HanXue","W",3};
(2) struct Student student2={"WangJie","M",4};
/ 结构体数组
/ 一般形式
struct Student
{
char name[10];
char sex[10];
int grade;
}sudent[5];
/ 数组中的各数据在内存中的存储是连续的
/ 指向结构体变量的结构体指针
/ 结构体指针指向结构体变量的起始地址
/ 一般形式
struct 结构体类型 *指针名;
如:strcut Student *pStruct;
/ 引用
/ 使用 . 运算符引用结构成员
如:(*pStrcut).name="HanXue"; [括号不能省略,因为"."的运算优先级最高]
/ 使用指向运算符引用结构成员:pStruct -> 成员名
如:pStruct -> name = "HanXue";
/ 共用体
/ 共用体也称联合,它使几种不同类型的变量存放到同一段内存单元中,所以共用体在同一时刻只能有一个值,它属于某一数据成员
/ 由于所有成员处于同一块内存,因此共用体的大小就等于最大成员的大小
/ 共用体的一般形式
union 共用体名
{
成员列表
}变量列表;
/ 共用体与结构体的区别
/ 共用体定义了一块为所有数据成员共享的内存
/ 结构体定义了一个由多个数据成员组成的特殊类型,结构体变量的大小是所有数据成员的总和
/ 声明、定义、引用等和结构体类似
/ 对共用体变量进行初始化时,只需要一个初始化值,其类型必须和共用体的第一个成员的类型相同
/ 如果第一个成员是一个结构体类型,则初始化值中可以包含多个由于初始化该结构的表达式
/ 同一内存段可以存放集中不同类型的成员,但是每一次只能存放其中一种类型,而不是同时存放所有的类型;
/ 也就是说,在共用体中,同一时间只能有一个成员起作用
/ 枚举类型
/ 枚举变量的定义
enum 枚举变量名(枚举常量);
/ 一个枚举变量包括一组相关的标识符,其中每个标识符都对应一个整数值,称为枚举常量;枚举常量的标识符默认从0开始依次叠加
C_Learning(3)的更多相关文章
- C_Learning(2)
/指针 /指针变量指向一个变量的地址 /给指针变量赋的值只能是地址 /指针变量的赋值 /{ int a; int *p; p=&a; } or { int a; int *p=&a; ...
- Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
- ASP.NET Core 之 Identity 入门(一)
前言 在 ASP.NET Core 中,仍然沿用了 ASP.NET里面的 Identity 组件库,负责对用户的身份进行认证,总体来说的话,没有MVC 5 里面那么复杂,因为在MVC 5里面引入了OW ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- Online Judge(OJ)搭建(第一版)
搭建 OJ 需要的知识(重要性排序): Java SE(Basic Knowledge, String, FileWriter, JavaCompiler, URLClassLoader, Secur ...
- 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑
阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...
- 如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成
阅读目录 前言 建模 实现 结语 一.前言 前面几篇已经实现了一个基本的购买+售价计算的过程,这次再让售价丰满一些,增加一个会员价的概念.会员价在现在的主流电商中,是一个不大常见的模式,其带来的问题是 ...
- 【.net 深呼吸】细说CodeDom(5):类型成员
前文中,老周已经厚着脸皮介绍了类型的声明,类型里面包含的自然就是类型成员了,故,顺着这个思路,今天咱们就了解一下如何向类型添加成员. 咱们都知道,常见的类型成员,比如字段.属性.方法.事件.表示代码成 ...
随机推荐
- 0004python中的map,reduce,lambda,filter
编程实现:a[0]*b[0] + a[1]*b[1] +...+a[i]*b[j] >>> a=[1,2,3,4,5]>>> b=[6,7,8,9,0] >& ...
- ubuntu 添加用户到已存在的组
sudo adduser 用户名 组名 sudo minicom –s 配置 minicom访问ttyUSB0没权限,发现属于dialout 组 james@james-OptiPlex-380: ...
- mysql unix domain socket and network socket, ssh key
当主机填写为localhost时mysql会采用 unix domain socket连接 当主机填写为127.0.0.1时mysql会采用tcp方式连接 这是linux套接字网络的特性,win平台不 ...
- android bluetooth
Android bluetooth介绍(一):基本概念及硬件接口 BlueZ为调试和与蓝牙子系统通信提供很多设置命令行工具,包含下面这些: hciconfig hcitool hcidump sdpt ...
- LoadRunner-循环
Edit Runtime Settings ,设置循环次数 在Open Parameter List 里设置循环参数,比如用例为删除notice,每执行一次用例id值不同. 把id替换为参数,并在参数 ...
- Loadrnner 参数化策略
参数化策略 关键:类型+数据+策略 1.Select next row ( 如何取) 选择下一行 1)Sequential:顺序的 每个VU都从第一行开始,顺序依次向下取值:数据可以循环重复使用:-- ...
- python中实现mysql连接池
python中实现mysql连接池 import pymysql from DBUtils.PooledDB import PooledDB MYSQL_HOST = 'localhost' USER ...
- auto类型-现代C++新特性
auto类型 C++11中引入的auto主要用于类型推导.auto在C++98中"存储类型指示符"的语义,由于使用极少且多余,该语义从C++11开始被删除. auto类型推导用于从 ...
- PAT World Cup Betting[非常简单]
1011 World Cup Betting (20)(20 分) With the 2010 FIFA World Cup running, football fans the world over ...
- 【转】 Oracle 用户权限管理方法
sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 sys;//系统管理员,拥有最高权限 system;//本地管 ...