指针总结
指针二
一、指针和数组
方法:看标识符离谁近,就是谁
- int * p [10];
数组元素是指针的数组
p离【】近,是数组
有10个指针,可以存放10个整型变量的地址
2.int (* p)[10];
指向数组的指针、p的指针、二维数组传参
二、二级指针
int * * p;
int a=0;
int b=0;
int * q = &a; //q指向了变量a
* q = 2; //q==&a *q==a *q==a==2
p = &q; //p指向了指针q
* p = &b; //p==&q *p ==q q==&a q==&b *p==&b
三、指针和函数
1.int * p (int ,int ,int );
p是函数(有三个参数)函数的返回值类型是int *(即返回一个地址)
2.int (* p)(int,int ,int);
p是指针,指向了函数
将另外一个相同类型、相同参数的函数名赋给指针p,将p完全可以当成函数来调用。作用:增加代码的复用度。
四内存管理
栈区:系统分配和回收内存,通常指函数内部定义的变量
堆区:由程序人分配和回收内存。
常量区:所有的常量都存储在常量区
静态(全局)区:静态变量和全局变量在此区,程序开始执行即开辟空间,直到程序结束,则系统自动回收内存。
代码区:所有编写的程序在编译后的二进制代码存入在代码区执行
malloc():在堆区开辟空间
free():使用完毕后释放空间
memset:初始化开辟的堆空间