指针和动态分配内存函数
1.指针
(1)什么是指针?
答:指针就是一个变量,和整形,浮点型,字符型一样,唯一的无别就是指针变量存储的是对应类型的变量地址
1 int a; 2 int *p; 3 a = 10; //a中存储的是具体的数值10 4 p = &a; //p中存储的是a的地址
(2)& 和 *
1)“&” 取地址符
2)“ * ”间接访问运算符,取得指针所指向的内存的值。
2.malloc函数
(1)malloc函数包含在“stdlib.h”头文件中,作用是从内存中申请分配指定字节大小的内存空间
(2)malloc函数的返回类型是“void *”类型,表示未确定类型的指针。在C和C++中,void * 类型可以强制转换成任何其他类型的指针
1 int *p; 2 p = (int *)malloc(sizeof(int));
3.结构体指针
1 struct node 2 { 3 int node; 4 struct node * next; 5 }
解释:定义了一个包含了两个成员的结构体指针
(1)node:用来存储具体的数值
(2)* node:用来存储下一个结点的地址,由于下一个结点的类型仍是结构体,所以该指针的类型仍为struct node *