标签(空格分隔): Driphp
##NO.84 什么是指针?什么是结构体?如何进行动态内存的申请和释放? ###1、什么是指针 ####CPU如何与内存进行通信? 先看一张图。
内存是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()函数释放掉一块内存