数据结构预备知识

一、指针

概念:指针就是一个地址,地址就是指针

    指针变量是存放内存单元地址的变量

    指针的本质是一个操作受限的非负整数

范围: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);