C++程序设计:先调用再赋值解析

需积分: 9 3 下载量 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++中,正确理解和使用引用是至关重要的,因为它直接影响到程序的行为和结果。在实际编程中,理解这些基本概念有助于编写更有效、更安全的代码。