保存地址的变量
常见错误:定义了指针变量,还没有志指向任何变量,就开始使用指针
数组变量是特殊的指针,数组的单元表达的是变量,要用&取地址
[]运算符可以对数组也可以对指针
数组变量是const的指针,所以不能被赋值
int b[] --> int *const b
两个数组之间不能做赋值
指针不应具有0值
0地址:
1.返回的地址是无效的
2.指针没有被真正初始化
NULL表示0地址
指针不能互相赋值
指针的类型转换:
指针用处;传入较大数据用作参数;传入数组后对数组操作;函数返回不止一个结果;用函数修改不止一个变量;动态申请的内存。
输入数据
int *a=(int*)malloc(n*sizeof(int))
用malloc,头文件为<stdlib.h>
返回结果是void*
free()把申请过来的空间还给系统(只能还首地址)
问题:申请了没free——长时间运行内存逐渐下降;free过了再free;地址变过了,直接free。