指针题目分析详解(作业一)

本文详细解析了C++中指针与自加运算符的组合使用,包括后置自加与前置自加的区别,以及在数组和字符串上下文中的应用。通过填空题和选择题的形式,阐述了指针在执行时和执行后的值变化,帮助理解指针运算的底层逻辑。
摘要由CSDN通过智能技术生成

一.填空

1.假定p 所指对象的值为28p+1 所指对象的值为62,则*p++的值为___28__*++p的值为___62__

分析:由于后置自加运算符优先级高于指针运算符,而前置自加运算符与指针运算符在同一优先级(从右到左),则*p++所指对象的值为28(遵循后置自加运算符的先用再加的原则),而*++p所指对象为62(由于两运算符在同一优先级,且该优先级的结合性是从右到左,则p先与++前置自加运算符)结合,其值变成了原对象后一对象的地址,再与*(指针运算符)结合)。

2假定p 所指对象的值为25p+1 所指对象的值为50,则执行“(*p)++”语句后,p 所指对象的值为__26___

分析:由于括号运算符位于第一优先级,高于指针运算符,而在括号内的内容当作一个整体,易得出执行(*p)++时,p先与*结合,代表其所指对象的值25,而后与++(后置自加运算符)时其值不变,执行后其值自加变成了26。

小结:注意此类题目的字眼,“执行时”与“执行后”的结果可能不同!

3假定p 所指对象的值为25p+1 所指对象的值为50,则执行“*(p++)”语句后,p 所指对象的值为_50__

分析:由于自加运算符的特性,在执行时,*(p++)相当于*(p),其值为25,但执行后p自加变成了p+1,实现了p变量地址的转变,其所指向的值也会相应变化,则执行后p所指对象的值为50。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值