C++教程:形参实参使用指针详解
需积分: 18 157 浏览量
更新于2024-08-24
收藏 8.81MB PPT 举报
"形参实参都用指针变量-C++教程-谭浩强"
在C++编程中,形参(formal parameter)和实参(actual parameter)是函数调用时涉及的重要概念。形参是函数定义时声明的变量,它们在函数内部使用,而实参则是函数调用时传递给形参的值。在这个特定的例子中,形参和实参都是指针变量,这意味着在函数调用时,传递的是内存地址而非实际的值。
在给出的代码段中,`main()` 函数定义了一个整型数组 `a` 和一个指向整型的指针 `p`,然后将 `p` 指针赋值为数组 `a` 的首地址。这样,`p` 就指向了数组的第一个元素。之后,`f()` 函数被调用,传入了指针 `p` 和整型值 `10`。在 `f()` 函数内部,形参 `x` 是一个整型指针,接收 `p` 的值,即数组 `a` 的首地址;形参 `n` 是一个整型,接收 `10` 的值。这样,`f()` 函数可以通过形参 `x` 访问和操作传入的数组。
C++ 教程通常强调,当使用指针作为参数时,实参指针变量在调用函数之前必须被赋值,因为未初始化的指针可能含有随机的内存地址,这可能导致程序崩溃或者出现未定义的行为。在本例中,`p=a;` 确保了 `p` 已经指向了一个有效的内存位置。
C++ 语言起源于C语言,由C语言发展而来,它在C的基础上增加了面向对象的特性,使得编程更加灵活和高效。C++ 保留了C语言的许多优点,如简洁的语法、高效的执行和良好的可移植性。C++ 的特点包括:
1. 结构化编程:C++ 支持结构化编程原则,可以编写模块化的程序,便于理解和维护。
2. 高级和低级语言特性结合:C++ 提供丰富的运算符,支持位运算,同时允许直接访问内存,类似于汇编语言。
3. 数据结构和算法的强大支持:C++ 支持动态数据结构,如类和模板,适合复杂的数据结构设计。
4. 可移植性:C++ 程序在不同平台间的可移植性较强,编写的程序可以在多种计算机系统上运行。
5. 程序设计自由度大:C++ 允许程序员自由选择编程风格,但这也意味着对程序员的要求更高,需要更深入理解语言规则以避免错误。
对于初学者来说,C++ 的学习曲线可能较为陡峭,尤其是指针部分,因为指针的使用需要对内存管理和地址概念有清晰的理解。不过,熟练掌握指针能够极大地提升编程能力,特别是在处理高效数据结构和算法时。调试C++程序时,可能需要借助调试器来追踪变量状态,以找出潜在的错误。C++ 是一种强大的编程语言,适用于各种领域,包括系统编程、游戏开发、科学计算等。
2018-04-06 上传
2011-05-27 上传
2023-07-29 上传
2023-08-09 上传
2023-05-21 上传
2023-06-10 上传
2023-04-17 上传
2023-06-10 上传
2023-06-10 上传
2023-06-10 上传
深夜冒泡
- 粉丝: 16
- 资源: 2万+
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析