Skip to content

Latest commit

 

History

History
50 lines (40 loc) · 1.75 KB

Q81-85.md

File metadata and controls

50 lines (40 loc) · 1.75 KB

Q81-85

标签(空格分隔): Driphp


##NO.84 什么是指针?什么是结构体?如何进行动态内存的申请和释放? ###1、什么是指针 ####CPU如何与内存进行通信? 先看一张图。

image_1b4fa0snq1tim1hpm1pr61jof16499.png-8.9kB

内存是CPU唯一可以访问的大容量存储设备(不可以直接访问硬盘) CPU通过地址线来查找要操作的内存单元、通过数据线来传输数据、通过控制线来控制是读还是写。

####指针与地址

  • 地址:内存单元的编号,从0开始的非负整数。一个字节一个编号,一个字节8位。
  • 指针:指针就是地址,地址就是指针。 指针变量:存放内存单元(编号)地址的变量。 ####实例
 double *p;//声明指针变量p
 double x=66.6;
 //&取得变量x的首地址,并且赋值给指针变量p。
 p=&x;//p是x的首地址。也就是p指向x的首地址。

###2、什么是结构体 ####为什么会出现结构体? 将一个实体不同的属性放在一起,形成的一种数据结构。 比如学生的姓名、学号、性别等放在一起形成结构体,目的是为了表示一些复杂的数据,普通的基本变量无法表示。

结构体的定义?

用户根据实际需要,自己定义的复合数据类型。

注意:结构体不是变量,是一种数据类型,与int、double数据类型同级。 ####如何定义结构体?

 struct Student st={
                    100,"eric",18
                };

###3、如何进行动态内存的分配和释放?

使用malloc()函数动态申请一块内存
使用free()函数释放掉一块内存