数据结构预备知识
一、指针:
概念:指针就是一个地址,地址就是指针
指针变量是存放内存单元地址的变量
指针的本质是一个操作受限的非负整数
范围:0-FFFFFF
例子:
int *p;
int i = 10;
int j;
p = &i;
j = *p
(p存放i的地址,×p就是i的本身)
二、结构体:
1、如何定义一个结构体:
在main函数之前定义
struct + 结构体名称
{成员类型+成员名称;
成员类型+成员名称;
成员类型+成员名称;
}
注意:结构体只是一个人为定义的一个数据结构类型,需要自行定义变量名称
2、结构体的使用方法:
struct Student st = {1000,"zhangsan",20}
(此方法很少用,因为不可能定义很多变量的名字)
struct Student ×pst = &st;
(定义了一个指针变量,名字叫pst存放的是struct Student变量的地址,总共就占4个字节的内存。存放
第一个字节的地址)
1.
st.sid
2.
pst -> sid
pst所指向结构体中sid这个成员
注意事项:
结构体变量不能加减乘除,但可以互相赋值
动态函数分配:
malloc函数值能返回第一个字节的地址,然而并没有什么卵用,为了确定malloc函数所分配的地址到底是什么类型的,我们在malloc函数前进行强制类型转换。
即:int × pArr = (int*) malloc (sizeof (int) * len);