C语言指针2(空指针,野指针)
//最近,有朋友开玩笑问 int *p *是指针还是p是指针还是*p是指针,当然,*p是指针
//野指针----->>>指没有指向一个地址的指针(指针指向地址请参考上一篇文章)

//空指针---->>指向空(null)的指针就是空指针

//指针的其他用法,指针可以指向指针,指针可以进行+ - * /运算

/*
特别注意,各个编译器都不相同,这里有一种错误写法,如:
int *p,int a=10,b=20;
p=&b;
*p = &a; //错误原因:*p表示指针p指向的值,而&a表示a的地址,值不能等于一个地址,正确写法位:*p=a;让指针p指向地址的值等于a的值,也就是现在b=a=10
然而,当char *p="dfds"; 时 就是正确的,因为此时*p保存的就是一个常量字符串,是一个不可修改的值,常用的char a="df"; 这是一个变量,值是可以修改的
当然,每个编译器都不相同,个别可能编译器可以通过编译,打印出的*p值为一个奇怪的数字,这个数字并非乱码,而是一个随机数,而这个随机数的地址就是一个为开发的内存值,而此时的指针p就是一个野指针
*/
//野指针的危害相当大,因为野指针不知道为指向哪块内存,如果程序员不小心用了野指针,那么就可能得到了不想得到的数据,很有可能造成程序崩溃、闪退等危 //害,经过我多次敲出野指针,发现了一个野指针危害的规律,即是当内存越低,野指针危害即越大
posted on 2017-07-28 22:42 momo_admin 阅读(630) 评论(0) 收藏 举报
浙公网安备 33010602011771号