C++程序设计:先调用再赋值解析
需积分: 9 133 浏览量
更新于2024-08-23
收藏 8.66MB PPT 举报
"先调用再赋值-C++程序设计课件谭浩强"
这篇资源主要讲解了C++编程中的一个重要概念——先调用再赋值,通过一个具体的代码示例来阐述这一概念。代码示例中,定义了一个函数`f`,它接收一个整数参数`x`,并将参数值与全局变量`a`相加,然后返回`a`的引用。在`main`函数中,对`f`函数进行了多次调用和赋值操作,展示了引用的特性以及调用与赋值的顺序影响。
1. 引用的概念:
在C++中,引用是一种别名,它不是一个独立的变量,而是已存在对象的另一个名字。一旦引用被初始化为某个对象,就不能改变引用的对象。在示例中,`f`函数返回的是`a`的引用,意味着可以通过这个返回值直接访问和修改`a`的值。
2. 函数`f`的实现与返回值:
函数`f`接受一个整数`x`,将`x`的值加到`a`上,然后返回`a`的引用。这意味着调用`f(t)`会改变`a`的值,并且返回的`a`的引用可以用于进一步的操作。
3. `main`函数中的调用和赋值:
- `cout<<f(t)<<endl;`:首次调用`f(t)`,`a`的值变为`a + t`(9),输出9。
- `f(t)=20;`:这次调用`f(t)`,但之后对返回的引用进行赋值,实际上是将`a`设置为20,而不是改变`f`的返回值。
- `cout<<f(t)<<endl;`:第二次调用`f(t)`,由于`a`现在等于20,所以输出25。
- `t=f(t);`:`t`被赋值为`f(t)`的返回值,即`a`的当前值(20),此时`t`也成了`a`的引用。
- `cout<<f(t)<<endl;`:第三次调用`f(t)`,`a`的值变为`a + t`(20 + 20 = 40),输出40。
4. C++语言特点回顾:
提及C++的起源和发展,C++是从C语言发展而来,保留了C语言的很多优点,如结构化编程、丰富的运算符、良好的可移植性等。C++还引入了类、模板、异常处理等面向对象的特性。
5. C语言的特点:
- 结构化编程:C语言支持结构化编程,允许使用函数、循环和选择结构等来组织代码。
- 高级和低级结合:C语言既有高级语言的抽象,又有汇编语言的直接性,支持位运算。
- 可移植性:C语言编写的程序可以在不同平台之间移植,只需微小的改动或无需改动。
- 语法自由度:C语言的语法较为宽松,允许程序员有较大的自由度,但也增加了调试难度。
6. 学习C++的挑战:
对于初学者来说,C++的语法灵活性既是优势也是挑战,因为理解如何正确地调用和赋值,以及何时使用引用和指针,需要深入理解语言规则。
通过这个例子,我们可以看到在C++中,正确理解和使用引用是至关重要的,因为它直接影响到程序的行为和结果。在实际编程中,理解这些基本概念有助于编写更有效、更安全的代码。
点击了解资源详情
2011-04-01 上传
2009-08-13 上传
2010-05-04 上传
2008-09-01 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
我的小可乐
- 粉丝: 26
- 资源: 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色块闪烁现象解析