//如何规避野指针? //1.指针初始化 //2.小心指针越界 //3.不用时,将指针置NULL //4.指针使用之间检查有效性 //二级指针 //#include <stdio.h> //int main() //{ // int a = 10; // int* pa= &a; // int* * ppa = &pa; //ppa是二级指针int*是类型再加一个*找到pa // printf("%d",**ppa); // return 0; //} //指针数组 - 数组 -》 存放指针的数组 //数组指针 - 指针 //指针数组 - 数组 //#include <stdio.h> //int main() //{ // int a = 10; // int b = 20; // int c = 30; // int* arr2[3] = {&a,&b,&c}; // int i; // for (i = 0; i < 3; ++i) // { // printf("%d",*(arr2[i])); // } // return 0; //} 一级指针 //1.&数组名 -> 数组名不是首元素地址(整个数组的地址) //2.sizeof(数组名) -> 数组名表示的整个数组()计算整个数组大小 //3.&arr[i]取得是是i的地址 //指针运算 指针++-- 指针 - 指针 = 元素个数 指针可以比较大小 //#include <stdio.h> //#define N_VALUES 5 //int main() { // //1.指针++-- float values[N_VALUES]; float *vp; for (vp = &values[0]; vp < &values[N_VALUES];) { *vp++; } // return 0; // // //2.指针 - 指针 = 元素个数 前提;同一个数组 int arr[10] = {1,2,3,4,5,6,7,8,9}; printf("%d",&arr[9] - &arr[0]); return 0; // //2.1回看8月15日 strlen()用指针实现 // //3.指针可以比较大小 // float values[N_VALUES]; // float *vp; // for (vp = &values[N_VALUES]; vp > &values[N_VALUES];) // { // *--vp = 0; // } //}
11-05
994
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
01-16
711
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-14
488
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
01-26
11万+
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-07
104
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
09-03
658
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-29
7791
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)