C语言小结之结构类型
C语言小结之结构类型
@刁钻的游戏
(1)枚举型类型
enum COLOR {BLACK,RED,BLUE};
//声明一种新的数据类型,其值分别为0,1,2但是用BLACK/RED/BLUE代表
也可以这莫做
enum COLOR {RED = 1,YELLO,BLUE};//则值为1,2,3
enum的本质还是int型
应用:可以表示一列const int,用它来做符号量。
(2)结构类型
结构体类型就是一个复合数据类型,就是一个变量,下面包含着一些数据。
1>结构体声明
方式一:声明结构体
struct point{//创建结构体类型
int x;
int y;
}
struct point P1;//声明point类型变量 P1
方式二:单纯想要两个变量,而不想声明这种结构类型
struct{
int x;
int y;
}p1,p2;
方式三:同时做两件事,一则创建结构体变脸类型,二则声明两个结构体变量
struct point{
int x;
int y;
}p1,p2;
2>结构体变量赋值
struct point p1 = {12,32};
struct point p2 = {,y=10};//为赋值的默认为0
注意:前面要跟上struct
3>结构成员的访问和使用
使用.域操作符
p1.x = 2;
z = p1.y;
可以对整体赋值,譬如:P1 = (struct point){4,5};
4>函数中传递的是值不是地址,如果我们想改变本身变量,应该传入地址
&p1
p1->x表示P1中的成员变量x
思想:函数中,传入一个结构体,不如只穿结构体的指针,然后在函数体里面进行使用
5>结构数组
point P1[2] = {{1,2},{2,3}};//两个坐标P1[0] = {1,2} P2[1]={2,3}
print(point *p1)
{
printf("x=%d,y=%d",p1->x,p1->y);
}
(3)自定义数据类型
struct创建的自定义数据类型,在声明变量时都要跟上struct
typedef提供了数据类型别名
例如
typedef int LENGTH//表示为int起了个别名叫做LENGTH
则以后可以这样使用
LENGH l1,l2;
所以我们可以用它来这样做
typedef struct APOINT{
int x;
int y;
} POINT;
他就等效为如下图所示
typedef <---> POINT//表示为struct 结构体类型创造了POINT变量类型
以后就可以这样
POINT P1 ={1,2};
(4)联合体数据类型
表示形式:union
举例:
union POINT{
char i;
int y;
}
共用体声明后,实质这块内存的大小是其中包含变量最大的大小,在上述程序中应该是int大小最大,那么他是四个字节大小
内存中排列是这样的
i 【 】 ---- ---- ----
y 【 】【 】【 】【 】
//【】代表内存占有 ---- 内存不占有
他们共用一块内存。
应用:可以利用共用体对长变量进行拆分,拆分成四个char或者二进制进行观察。
C语言小结之结构类型的更多相关文章
- [C语言]进阶|结构类型: 枚举, 结构, 类型定义
--------------------------------------------------------------------- 枚举: // main.c #include <std ...
- 《Go语言实战》Go 类型:基本类型、引用类型、结构类型、自定义类型
Go 语言是一种静态类型的编程语言,所以在编译器进行编译的时候,就要知道每个值的类型,这样编译器就知道要为这个值分配多少内存,并且知道这段分配的内存表示什么. 提前知道值的类型的好处有很多,比如编译器 ...
- C语言入门-结构类型
一.声明结构类型 #include <stdio.h> int main(int argc, char const *argv[]) { // 声明结构类型 struct date { i ...
- GO语言基础(结构+语法+类型+变量)
GO语言基础(结构+语法+类型+变量) Go语言结构 Go语言语法 Go语言类型 Go语言变量 Go 语言结构 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 &a ...
- GO语言总结(2)——基本类型
上篇博文总结了Go语言的基础知识——GO语言总结(1)——基本知识 ,本篇博文介绍Go语言的基本类型. 一.整型 go语言有13种整形,其中有2种只是名字不同,实质是一样的,所以,实质上go语言有1 ...
- C语言 栈 顺序结构 实现
一个能够自动扩容的顺序结构的栈 ArrStack 实例 (GCC编译). /** * @brief C语言实现的顺序结构类型的栈 * @author wid * @date 2013-10-29 * ...
- Scala 深入浅出实战经典 第53讲:Scala中结构类型实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- [Effective JavaScript 笔记]第57条:使用结构类型设计灵活的接口
想象创建wiki的库.wiki网站包含用户可以交互式地创建.删除和修改的内容.许多wiki都以简单.基于文本标记语言创建内容为特色.通常,这些标记语言只提供了HTML可用功能的一个子集,但是却有一个更 ...
- C语言中的结构体,结构体数组
C语言中的结构体是一个小难点,下面我们详细来讲一下:至于什么是结构体,结构体为什么会产生,我就不说了,原因很简单,但是要注意到是结构体也是连续存储的,但要注意的是结构体里面类型各异,所以必然会产生内存 ...
随机推荐
- 项目源码--Android高质量图片浏览器源码
下载源码 技术要点: 1. 浏览所有格式的图片 2. 图片缓存到数据库 3. Sqlite数据库的高级应用 4. 文件夹缩图显示 5. 多点触控技术 6. 动画技术 7. 支持超高清图片 8. ...
- java_JdbcUtilis_单实例
//eg1,没有使用单实例,eg2有 package cn.itcast; import java.sql.Connection; import java.sql.DriverManager; imp ...
- Mailing API
Mailing API Configuration Basic Usage Embedding Inline Attachments Mail & Local Development Work ...
- java专业规划(转载)
1. Java语言基础 谈到Java语言基础学习的书籍,大家肯定会推荐Bruce Eckel的<Thinking in Java>.它是一本写的相当深刻的技术书籍,Java语言基础 ...
- css实现响应式全屏背景
利用css中 background-size:cover 填充整个viewport 注意: 一张背景图像素5000px*5000px在pc端 缩放都基本满足要求 不会出现模糊失真: 但是在移动端使用 ...
- iOS app 上架的流程与注意点
这里整理了两个关于苹果应用商店上架方面的资料: 一个是app上架的流程,里面包含各个环节的截图,比较详细. 流程介绍链接 (提取码:52a4) 第二个是app上架的一些注意点,这里面主要说的是上架 ...
- 【排障】tomact未能看到网页
[排障]tomact未能看到网页 文:食梦貘 这是几个月前的事情了,那时候我在安装xwiki,需要用到tomcat,但是初次安装好时碰上过一个故障: 安装tomcat后,客户机用IE网址上输入:服务端 ...
- TortoiseGit记住用户名和密码
1.将项目从服务器Clone下来 2.然后在Repository上右键,打开设置 3.选择凭证 4.为当前Repository创建一个凭证,然后确定退出即可 5.然后再pull下,会直接提示你输入密码 ...
- Asp.Net Cookie的清除
背景 最近做到一个asp.net项目,项目中保存用户信息用到了cookie,因此,在注销身份的时候,就需要清除掉cookie. 探索过程 我先是试验了这种代码,在没有特殊声明前,代码都是写在Page_ ...
- Yii框架学习笔记(二)将html前端模板整合到框架中
选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...