C语言是一门面向过程的语言,以函数为基本单位
指针
指针是C语言的灵魂
基本类型指针
- int p; //p是以整型变量的地址为内容的变量,p是以p的内容为地址的变量
- 指针就是地址,地址就是指针,地址就是内存单元的编号
- 指针不等于指针变量,指针变量是存放内存地址的一个变量,而指针是一个地址
- 指针的本质就是一个操作受限的非负整数,指针之间只能相减
指针与数组
```cinclude
int main(void) { int a[5] = {1, 2, 3, 4, 5}; int p = a; //定义一个int型指针p指向数组a (p + i) == p[i]; //重要!!!此等式成立 *(a + i) == a[i]; //同理
return 0;
}
<a name="DNGMD"></a>
## 动态内存分配
```c
#include <stdio.h>
#include <malloc.h>
int main(void)
{
int a[5] = {1, 2, 3, 4, 5}; //静态数组,以静态方式分配内存
int* p = (int*)malloc(4); //使用malloc函数动态分配内存
free(p); /*使用free函数释放分配的动态内存,需要注意的是无法释放给指针p分配的静态内存,
只能释放p所指向的那一块动态内存*/
return 0;
}