C++程序设计:形参实参指针应用解析
需积分: 9 40 浏览量
更新于2024-08-23
收藏 8.66MB PPT 举报
"形参实参都用指针变量-谭浩强经典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++程序员的关键步骤。
167 浏览量
328 浏览量
416 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
四方怪
- 粉丝: 30
- 资源: 2万+
最新资源
- FLASH四宝贝之-使用ActionScript.3.0组件
- 《j2ee开发全程实录+》.pdf
- 精通 JavaScript.pdf
- 矩阵理论+Matrix+Theory
- JSP2_0技术手册.pdf
- 图书馆读者网络服务系统的架构与实现
- 振荡器模拟知识20090406
- 推荐Java 学习资料——Java技能百练.pdf
- 深入浅出Struts2.pdf
- Hibernate开发指南.pdf
- 代理中Domino对域的解析和GetItemValue使用方法
- EJB3.pdf EJB3.pdf
- VHDL电路设计例代码集.doc
- photoshop快捷键
- 俄罗斯方块VC++课程设计
- modelsim学习资源包