C++指针练习题集:实战与理论解析

需积分: 5 0 下载量 12 浏览量 更新于2024-07-07 收藏 42KB DOCX 举报
本资源是一份C++练习题文档,主要涉及指针概念和基本操作。下面是各题目的知识点总结: 1. **指针运算与数组索引**: - 第一题考察的是指针算术。指针`p`被初始化为字符数组`a`中的元素`a[8]`,即索引8的元素,其值为字符'8'。表达式`p-3`表示指针向前移动3个位置,由于数组下标从0开始,所以实际指向的是字符'5'的地址,输出结果是6。 2. **指针与数组引用**: - 第二题展示了数组元素的指针操作。`*p`表示访问数组`a`的第5个元素,即值6,`q`未初始化,`q=p+5`会使得`q`成为`a`的第10个元素的地址,但没有正确初始化`q`指向的元素,因此运行时会报错。 3. **指针和变量赋值**: - 第三题涉及指针作为地址赋值。`*p=&r`将变量`r`的地址赋给指针`p`,这意味着`p`现在指向`r`的存储位置。而`*p=r;`是将`r`的值99复制到`p`指向的位置,这并不是取回`r`的值,而是改变`r`的值。 4. **指针与数组元素递减**: - 第四题中,`*--p`表示先递减指针`p`然后取值,因为初始`p=a+5`,递减后`p`指向`a[4]`,输出结果是数组中的4。 5. **简单算术运算与指针**: - 第五题通过指针`p`直接访问数组元素并进行加法运算,`*p+9`等价于`a[0]+9`,由于`a[0]=1`,输出结果是10。 6. **数组和指针引用**: - 填空题考察了指针的基本操作: - 第1题强调指针类型的匹配,即指针应与其指向的数据类型一致。 - 第2题解释了取地址运算符`&`和间接访问运算符`*`的作用。 - 第3题演示了如何用`=`和`+`操作符设置指针的初始和结束位置。 - 第4题和第5题提供了字符串操作例子,输出字符串元素或子串。 通过这些题目,学习者可以加深对C++指针的理解,包括指针的算术、类型匹配、地址赋值、数组操作以及基本的运算符应用。