中国建设银行网站会员登录华建建设集团网站
2026/5/21 13:39:27 网站建设 项目流程
中国建设银行网站会员登录,华建建设集团网站,哪些网站做夜场女孩多,深圳做网站的公司野指针[概念#xff1a;野指针就是指针指向的位置是不可知的#xff08;随机的、不正确的、没有明确限制的#xff09;] 一、野指针成因 1. 指针未初始化 int main() { int* p; //p没有初始化#xff0c;就意味着没有明确的指向 //一个局部变量不初始化的化#xff0c;放的…野指针[概念野指针就是指针指向的位置是不可知的随机的、不正确的、没有明确限制的]一、野指针成因1. 指针未初始化int main(){int* p;//p没有初始化就意味着没有明确的指向//一个局部变量不初始化的化放的是随机值0xcccccccc//*p 10;//非法访问内存了这里的p就是野指针return 0;}2. 指针越界访问int main(){int arr[10] { 0 };int* p arr;//arr[0]return 0;}int* test(){int a 10;return a;}int main(){int*p test();if (p ! NULL){printf(%d\n, *p);//}return 0;}3. 指针指向的空间释放二、如何规避野指针1. 指针初始化2. 小心指针越界3. 指针指向空间释放即使置NULL4. 避免返回局部变量的地址5. 指针使用之前检查有效性三、指针运算1.指针整数#define N_VALUES 5float values[N_VALUES];float *vp;//指针-整数指针的关系运算for (vp values[0]; vp values[N_VALUES];){*vp 0;}int main(){int arr[10] {0};int i 0;int sz sizeof(arr) / sizeof(arr[0]);//数组下标的写法//for (i 0; i sz; i)//{// arr[i] 1;//}int* p arr;for (i 0; i sz; i){*p 1;p;}return 0;}2.指针-指针int my_strlen(char *s){char *p s;while(*p ! \0 )p;return p-s;}int main(){int arr[10] { 0 };printf(%d\n, arr[9] - arr[0]);return 0;}PS指针-指针得到的是指针和指针之间元素的个数不是所有的指针都能相减指向同一块空间的2个指针才能相减1int my_strlen(char* str){int count 0;while (*str ! \0){count;str;}return count;}//2递归的版本//3 指针-指针int my_strlen(char* str){char* start str;while (*str ! \0){str;}return (str - start);}int main(){int len my_strlen(abcdef);printf(%d\n, len);return 0;}3. 指针的关系运算for(vp values[N_VALUES]; vp values[0];){*--vp 0;}代码简化这将代码修改如下:for(vp values[N_VALUES-1]; vp values[0];vp--){*vp 0;}实际在绝大部分的编译器上是可以顺利完成任务标准规定:允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较但是不允许与指向第一个元素之前的那个内存位置的指针进行比较

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询