指针问题分析

int ch[10]={1,};
int* te=&ch[0];
printf("%d\n",te[-1]);
te++;
printf("%d\n",te[-1]);

第一次打印和第二次打印的值是否一致?
对于这个问题,首先要分析te指针指向的是ch这个内存块的首地址,所以对于te[-1]来说,由于-1这个数组值不存在,所以其内容应该是随机的。当te++,te指针指向的地址就变成当前首地址的下一个,此时te[-1]的地址实际上就变成了首地址,所以打印的结果应该为1。(te-1)++实际上就是te。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值