新发现,有趣的指针

在给一个指针赋变量地址以后,便可以任意解引用

比如:

struct S {
int i;
int * p;

};


S s ; //1
int * p = &s.i; //2
p[0] = 4; //3
p[1] = 3;
p[2] = 5;
p[3] = 5;
p[4] = 5;
p[6] = 5;
p[5] = 5;

这里从p[0]到P[6],一直往下也可以,并没有问题。

另外指针赋值的时候,比如int *p = &n;这里是声明的时候并且赋值,但是如果要再要赋值就要这样,不能带解除引用:

int *p;

p = &n;

如果再这样*p = &n就出错了,这个时候应该是给*p赋值。

但是结构体里面就有点不同,上面p[1]对应的是应该是一个整数*p,但是不对,他实际上对应的却是p,当执行了p[1] = 3; 之后,p的值就变成了0x00000003了。

这个就奇怪了!

呵呵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值