2020-11-17

学习结构体和数据在内存中的存储

一、结构体

1、结构体概念:
结构体是C语言中一种重要的数据类型,该数据类型由一组称为成员(或称为域,或称为元素)的不同数据组成,其中每个成员可以具有不同的类型。结构体通常用来表示类型不同但是又相关的若干数据。
结构体类型不是由系统定义好的,而是需要程序设计者自己定义的。C语言提供了关键字struct来标识所定义的结构体类型。

2、结构体的定义方式:
关键字struct和结构体名组合成一种类型标识符,其地位如同通常的int、char等类型标识符,其用途就像 int 类型标识符标识整型变量一样可以用来定义结构体变量。定义变量以后,该变量就可以像定义的其他变量一样使用了;成员又称为成员变量,它是结构体所包含的若干个基本的结构类型,必须用“{}”括起来,并且要以分号结束,每个成员应表明具体的数据类型。
struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。
struct tag { member-list } variable-list ;在一般情况下,tag、member-list、variable-list这3部分至少要出现2个。以下为示例:

/此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c
//同时又声明了结构体变量s1
//这个结构体并没有标明其标签
 
struct {
 
    int a;
 
    char b;
 
    double c;
 
} s1;
 
 
//同上声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c
//结构体的标签被命名为SIMPLE,没有声明变量
struct SIMPLE{
 
    int a;
 
    char b;
 
    double c;
 
};
 
//用SIMPLE标签的结构体,另外声明了变量t1、t2、t3
struct SIMPLE t1, t2[20], *t3; 
//也可以用typedef创建新类型
typedef struct{
    int a;
    char b;
    double c; 
} Simple2;
//可以用Simple2作为类型声明新的结构体变量
Simple2 u1, u2[20], *u3;vb

3、结构体成员访问方式;
当我们定义结构体变量时,我们可以用圆点(.)运算符来访问他的成员.
若定义了结构体指针,并让结构体指针指向我们的结构体变量,若用结构体指针访问结构体中的成员,则用 (->)

数据在内存中的存储

1、内存中的实际内容按照十六进制来表示
2、小端字节序:字节或半字节的最低位字节(Lowest Significant Bit,LSB)存放于内存最低位字节地址上。与数学上表示一个整数是高位在左低位在右的逻辑相反。
3、大端字节序:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,与数学上表是一个整数的方式类似,
且一般情况下是哪种存储方式与电脑的cpu有关,一般为小端存储。即小(低位数值)小(小地址)小(小端存储)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值