黑马程序员--形参的不同定义方法

本文介绍了两种常见的值交换方法:普通值传递与指针交换,并通过示例代码展示了这两种方法的具体应用及输出结果。作者希望通过分享这些基础知识,唤起大家对编程细节的关注。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

数值交换看似简单的问题,却包含着很多知识,有无返回值的区别,形参的类型,是普通类型,还是指针类型,是不一样的。下边就从简单的形参不同写了两个函数,也是我时隔三年了头一次写播客,仿佛回到了大学时光,在接下来时间里我要用心写播客了,把不明白的,及时的整理出来,写在上面,一边以后可以浏览,查阅。为了黑马,继续努力!

1.普通的值传递

代码实现:



输出结果:




2.指针交换


输出结果:

### 黑马程序员 C++ 项目案例教程及相关资料 黑马程序员作为一家专注于 IT 技术培训的机构,提供了丰富的 C++ 编程学习资源和实际项目案例。以下是关于 C++ 的一些核心知识点以及可能涉及的实际项目案例。 #### 初始化列表的应用 在 C++ 中,初始化列表是一种高效的方式用于类成员变量的初始化。相比于传统的赋值方式,初始化列表可以减少不必要的临时对象创建并提高性能[^1]。 例如,在 `Person` 类中通过初始化列表设置属性值: ```cpp class Person { public: Person(int a, int b, int c) : m_A(a), m_B(b), m_C(c) {} int m_A; int m_B; int m_C; }; ``` 这种方式不仅简洁明了,还能够提升程序运行效率。 #### 函数参数传递与交换逻辑 对于简单的数据类型(如整型),可以通过传值方式进行基本的操作。然而需要注意的是,这种情况下函数内部修改不会影响外部原始变量[^2]。 下面是一个典型的错误示范——试图通过传值实现两个数值互换的功能: ```cpp void swap(int a, int b) { int temp = a; a = b; b = temp; } ``` 由于这里采用的是按值传递机制,因此无论怎样改变形参 `a` 和 `b` 的值都无法真正达到目的。如果希望达成目标,则需改用指针或者引用形式来完成此功能。 #### 使用 const 提升代码安全性 当某个函数不需要也不应该更改其接收的对象时,可以在参数前加上关键字 `const` 来保护该对象不被意外改动[^3]。如下所示的例子展示了如何利用这一特性增强程序健壮性: ```cpp struct Student { string name; int age; double score; }; void printStudent(const Student* stu){ cout << "Name:" << stu->name << ", Age:"<< stu->age << ", Score:"<< stu->score<<endl; } int main(){ Student s={"Tom",17,95.5}; printStudent(&s); return 0; } ``` 上述例子中,我们定义了一个只读版本的学生信息打印方法,有效避免了潜在的风险操作。 --- #### 推荐的学习路径与实践建议 为了更好地掌握 C++ 并积累实战经验,可以从以下几个方面入手: 1. **基础语法巩固**:熟练运用面向过程及面向对象两种编程范式下的各类语法规则; 2. **标准库熟悉度加深**:深入理解 STL 容器、算法等内容及其应用场景; 3. **多做练习题**:尝试解决 LeetCode 上有关字符串处理、动态规划等问题; 4. **参与开源贡献**:加入 GitHub 社区找到适合自己的小型项目进行开发维护工作; 最后提醒大家注意理论联系实际的重要性,只有不断动手编写真实可用软件才能快速成长成为一名合格甚至优秀的工程师!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值