Visual C++实用教程第4版:指针与引用详解及习题解答

版权申诉
0 下载量 53 浏览量 更新于2024-06-26 收藏 847KB PDF 举报
本资源是一本名为《Visual_C++_实用教程_第4版_郑阿奇》的书籍,主要针对Visual C++编程语言进行详细的实用教学。章节1.7聚焦于指针和引用这一核心概念,这是C++编程中的重要组成部分,用于间接访问内存地址和数据传递。 1. 题目涉及了指针的基本运算和应用。例如,表达式*pd*b计算的是d的值(5)与b的值(3)的乘积,即15。++*pd-b先将d的值加1(6),再减去b的值,结果为3。*pd++和++(*pd)分别表示先取地址再加1和先加1再取地址,对于未初始化的指针或未改变的d值,它们的行为可能会不同,但这里答案给出的是5和6。 2. 在C++中,数组和指针的声明需要注意语法。例如,正确的说明语句是'int N[4,9]',因为它指定了一个大小为4的数组,每个元素可以有9个元素。其他选项不符合标准语法。 3. 通过代码示例,展示了指针和数组的结合使用。程序输出结果是2和2,因为`*(p++)`首先取当前元素2,然后指针p自增,导致第二次输出时数组索引变为下一个元素的地址,但值仍为2。 4. 二维数组的指针操作练习显示,通过指针访问数组元素并进行计算,`(*p)*(*p+2)*(*p+4)`最终得到15,因为初始时p指向数组的第一行第一个元素1,后续加2和4对应的是数组索引。 5. 对于动态内存分配,如`int(*q)[3]=new int[2][3]`,正确引用数组元素的方式是通过指针的指针`(*(*q+2)+3)`,即访问第二行第三个元素。 6. 动态分配浮点型内存时,应使用类型转换,即`float *p; p = (float *)new float;`空白处应填入`(float)`,明确类型转换。 7. 引用的使用需确保其指向一个有效的变量,`int &x = m`是正确的,它声明了一个名为x的引用,绑定到变量m的值。其他选项要么是常量不能作为引用,要么没有初始化。 8. 最后,分析了函数参数为引用的情况。在给定的函数`fun()`中,实参`s`被当作引用传递,函数内部可以直接修改`s[n]`的值。在主函数中,将10赋值给`fun(3,s)`后,输出的结果是10,因为`s[3]`的值已经被更新。 9. 用指针实现参数交换的函数设计中,需要接收两个实数指针作为参数,通过指针操作来交换它们所指向的值,然后排序输出,实现两个变量的临时交换并保持原始顺序。 这部分内容深入讲解了指针、引用以及数组在C++中的运用,包括基本运算、数组声明、动态内存管理、函数参数传递以及引用的使用技巧。这对于理解和掌握Visual C++的高级特性至关重要。