C++程序设计:形参实参指针应用解析
下载需积分: 9 | PPT格式 | 8.66MB |
更新于2024-08-23
| 109 浏览量 | 举报
"形参实参都用指针变量-谭浩强经典C++"
在C++编程中,形参(形式参数)和实参(实际参数)是函数调用时涉及的重要概念。形参是函数定义时声明的参数,它们在函数内部使用,而实参则是函数被调用时传递给形参的值。在这个例子中,我们讨论的是当形参和实参都是指针变量的情况。
在给出的代码示例中,`main` 函数声明了一个整型数组 `a` 和一个指向整型的指针 `p`。通过 `p=a;`,`p` 被初始化为指向数组 `a` 的第一个元素。然后,`f` 函数被调用,并将 `p` 作为第一个参数,10 作为第二个参数传递给 `f`。`f` 函数接收两个形参,一个是整型指针 `*x`,另一个是整型 `n`。
使用指针作为形参和实参有以下几个关键点:
1. **指针作为实参**:当实参是一个指针时,函数调用时不复制整个对象,而是传递该对象的地址。这意味着,如果函数内部改变了指针所指向的值,这个改变会影响到原始对象。例如,在 `f` 函数内部,可以通过 `*x` 修改 `p` 指向的数组元素。
2. **指针作为形参**:函数定义中的形参是局部的,它们不会影响到外部变量。但是,如果形参是一个指针,函数可以使用它来访问和修改实参所指向的对象。这里 `f` 函数可能通过 `*x` 访问和修改数组 `a` 的元素。
3. **实参指针变量调用前必须赋值**:在调用函数之前,确保指针变量已经指向一个有效的内存位置。否则,可能会导致未定义的行为,比如访问空指针。在示例中,`p=a;` 确保了 `p` 指向了一个已分配的数组,因此调用 `f(p, 10);` 是安全的。
4. **C++与C的关系**:虽然标题提到了C++,但这段代码更符合C语言的风格,因为没有利用C++特有的特性如类、模板或异常处理。C++是C语言的扩展,增加了面向对象编程、泛型编程以及更严格的类型检查等特性。
5. **C语言的特点**:C语言因其简洁性、灵活性、高效性和良好的可移植性而受到广泛欢迎。它的运算符丰富,支持位运算,允许直接访问硬件,因此既适合编写系统级软件,也适合编写应用程序。然而,C语言的语法较为宽松,对程序员的要求较高,需要理解指针和内存管理。
6. **程序的可移植性**:C语言的源代码在不同平台间具有良好的可移植性,因为C标准定义了一种跨平台的抽象机器模型。只要遵循标准,用C编写的程序可以在不同的操作系统和硬件上运行。
7. **调试和学习难度**:C语言的调试可能相对困难,因为编译器不会做过多的检查。程序员需要对语法、内存管理和指针有深入理解,才能避免常见的错误,如缓冲区溢出和悬挂指针。
形参和实参的指针使用是C/C++编程中常见且重要的概念,它涉及到函数调用时的值传递和内存管理。理解和熟练运用这些概念是成为有效C++程序员的关键步骤。
相关推荐










四方怪
- 粉丝: 34
最新资源
- Wenyu Zhao的个人技术网站构建指南
- DBSync V1.9:实现数据库实时同步与异构兼容
- C++实现的学生信息管理系统的增删改查功能
- 美团点评2018技术年货盘点(上)
- 多功能JS下拉列表,支持搜索和样式定制
- 安卓图标设计精选集:开发者必备图标大全
- Linux环境下自动化分发Windows OVA实例教程
- Play框架Scala编译时依赖注入示例项目分析
- 安卓CWM.ZIP自定义刷机包压缩文件解压缩指南
- Win64OpenSSL安装与环境变量配置指南
- 掌握键盘快捷操作:typing-cheatsheets快捷键指南
- Go开发的分布式内存 MMO 游戏服务器架构设计
- Delphi字符串分割方法及示例源码解析
- FPGA实现经典俄罗斯方块游戏教程
- QtCustomControls:实用的自定义控件库
- 深入剖析J2EE经典实例及其应用