野指针问题
- 未初始化报错(可以int* p=NULL)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main(){
int* p;
*p = 20;
return 0;
}
- 数组越界访问
*p++=i的等价写法
- 指向地址的内存空间被释放(局部变量未加static时发生该情况)
解决方案:用完置为空指针
使用之前要判断可用性
指针加减整数
指针减指针是返回中间相隔的元素个数(大地址减小地址),不同类型相减的说法是错误的
案例求字符串长度
指针关系运算(优先第一种写法,c语言标准保证)
指针和数组:2种特殊情况不是数组首元素地址
二级指针
指针数组:存放指针的数组