C语言进阶3-指针第二部分

  1. 野指针,就是指针指向了一块不确定的地方,或者虽然指向了一块确定的地方,但是引用空间的结果却是不可预知的,这就是野指针
    比如
int maint(void)
{
int *p;
*p=10;    //这里的指针要指向的地址是不确定的,所以就是野指针
return 0;  
}

野指针可能引发段错误,或者引发程序连环式错误,导致野指针有以下几种可能性:
1)指针指向了一块不确定的地方
2)指针虽然指向了一块确定的地址,但是这块空间没有权限去访问
3)访问空间时,内存越界导致野指针。比如指针数组有五个成员,但是你却常是访问第六个成员,这样就会导致内存越界。
2.const关键字
const对于普通变量的修饰:

int const a=19//也可以写成const int a = 19,因为a是常量,所以不允许被修改

const修饰指针的三种形式:
1)int const *p 或者写成const int *p

int a=10;
int b=20;
int const *p=&a;
*p=100;  //这一行代码是错误的,因为p指向的空间不能被修改
p=&b;	//这样的写法是正确的,因为p本身是可以被修改的,此时p又重新指向了b

注意:int const p这种修饰的方式就说明了p不能被修改,但是p本身指向是可以被修改的
2)int *const p
比如:

int a=10;
int b=20;
int *const p =&a;  //此时p指向了a
*p=100;  //正确,因为p所指向的空间内容是可以被修改的
p=&b;    //错了,因为指针变量p的内 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值