一、如何规避野指针
1、指针初始化
2、小心指针越界
3、指针指向空间释放即使置NULL
4、指针使用之前检查有效性
二、指针运算
1、指针+-整数
#define N_VALUES 5
float values[N_VALUES];
float* vp;
for (vp = &values[0]; vp < &values[N_VALUES];) {
*vp++ = 0;(先*vp,再++,它是后置加加)
}
2、指针-指针
#include<stdio.h>
int my_strlen(char* str) {
char* start = str;
char* end = str;
while(*end != '\0') {
end++;
}
return end - start;
}
int main() {
//第一种表示元素个数的方法
//int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//printf("%d\n", &arr[9] - &arr[0]);//表示的是元素个数
//第二种表示元素个数的方法
char arr[] = "bit";
int len = my_strlen(arr);
printf("%d\n", len);
return 0;
}
3、指针的关系运算
#define N_VALUES 5
float values[N_VALUES];
float* vp;
for (vp = &values[N_VALUES]; vp > &values[0];) {
*--vp = 0; (先--再vp*,前置--)
}