指针和动态分配内存函数


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 *

相关