C++程序设计:谭浩强教程中的引用与赋值

需积分: 42 1 下载量 76 浏览量 更新于2024-08-24 收藏 8.81MB PPT 举报
"先调用再赋值-清华大学谭浩强C++教程" 在这个教程中,讲解的是关于C++中函数返回引用以及先调用再赋值的概念。首先,我们来看一下例子中的代码: ```cpp int a=4; int &f(int x) { a=a+x; return a; } void main(void) { int t=5; cout<<f(t)<<endl; f(t)=20; cout<<f(t)<<endl; t=f(t); cout<<f(t)<<endl; } ``` 这段代码中,`f` 函数返回了一个整型引用,这个引用是变量 `a` 的别名。这意味着当 `f(t)` 被调用时,实际上是操作 `a` 的值。 1. 首次调用 `f(t)`,将 `t`(初始值为5)与 `a`(初始值为4)相加,结果9被输出。此时,`a` 的值变为9。 2. 接下来的 `f(t)=20` 实际上是将20赋值给 `a`,因此 `a` 变为20,再次输出 `f(t)` 结果为25。 3. 然后 `t=f(t)` 将 `t` 的值设置为 `a` 的当前值,即20,所以 `t` 变为20,再次输出 `f(t)`(此时 `a` 未改变,仍为20),结果仍然是25。 4. 最后,再次调用 `f(t)`(此时 `t`=20),将 `t` 与 `a` 相加,`a` 变为40(因为 `a=a+t`),然后把结果赋值给 `t`,所以 `t` 变为40,输出 `f(t)` 为40。 这个例子展示了C++中引用的力量,它可以让我们直接操作变量的原始存储位置,而不是复制一个副本。这在处理大对象或者需要高效操作时非常有用。 C++是由C语言发展而来,它在C的基础上增加了面向对象的特性,比如类、继承、多态等。C++语言的特点包括: - **结构化**:C++是一种结构化编程语言,它强调程序的组织结构,使得代码更易于理解和维护。 - **灵活性**:C++支持过程式编程和面向对象编程,提供了丰富的数据类型和运算符,使得程序员可以灵活地设计程序。 - **高效性**:由于C++的底层特性,编译后的程序执行效率高,接近汇编语言。 - **可移植性**:C++程序在不同平台间的移植性很好,编写一次,几乎可以在任何支持C++的系统上运行。 - **不严格的语法**:虽然这使得C++具有较大的灵活性,但也可能对初学者造成困扰,因为语法错误可能在运行时才暴露出来,调试难度相对较高。 学习C++时,理解这些特性是非常重要的。谭浩强的C++教程,作为清华大学出版社的教材,通常会系统地介绍这些概念,帮助读者掌握C++的基本语法和编程技巧。同时,书中可能会通过丰富的例子和练习,让学习者更好地理解和应用这些知识。