### VC++ 课件知识点总结
#### 课程概述
该课件由南京航空航天大学的皮德常教授授课,旨在提供一套全面系统的C++学习资源。通过本课件,学生能够深入理解C++语言的基本概念、语法结构以及高级特性。
#### 第3章 函数
##### 3.1 函数的定义和调用
- **定义**:函数可以分为库函数和用户自定义函数。
- **原因**:使用函数可以帮助将大型程序拆分成更小、更易于管理和维护的单元。
- **原则**:一个C++程序通常由多个函数组成,其中至少包含一个主函数(`main()`),它是程序的入口点。除了主函数外,其他函数称为子函数,这些子函数之间可以相互调用,但主函数只能调用其他子函数,不能被其他函数调用。
##### 3.1.2 定义函数
- **一般形式**:
```cpp
<类型><函数名>(<参数列表>) {
<函数体>
}
```
- **示例**:求两个整数中的最大值。
```cpp
int max(int x, int y) {
return x > y ? x : y;
}
```
- **注意事项**:
- 无返回值、有形参的函数,如`void display(int x) {...}`。
- 无返回值、无参数的函数,如`void display() {...}`。
- 有返回值、无形参的函数,如`int input() {...}`。
- 有返回值、有形参的函数,如上所述的`max`函数。
##### 3.1.3 调用函数
- **格式**:`<函数名>(实际参数表);`
- **调用类型**:
- **无返回值**:仅用于完成特定的操作,可以直接作为函数调用语句使用,如`display();`。
- **有返回值**:返回一个数值,通常出现在表达式中,如`max(a, b)`。
##### 3.2 函数的声明
- **要求**:C++对函数之间的排列没有特别的要求,但必须遵循“先定义后使用”的原则。
- **声明**:如果函数在调用之前未定义,则需要进行声明。声明包括函数类型、名称和参数列表。
- **示例**:实现哥德巴赫猜想,即验证960至970之间的所有偶数是否可以表示为两个素数之和。
```cpp
bool prime(int x);
// 主函数中调用 prime 函数
```
##### 3.3 函数的参数传递和返回值
- **参数传递**:
- 实参的值会按照位置传递给对应的形参。
- C++支持两种参数传递方式:传值(值传递)和传引用。
- **传值**:函数内部对形参的修改不会影响实参的值。例如,在`swap`函数中交换两个整数的值,但在主函数中这两个整数的值并未改变。
```cpp
void swap(int x, int y) {
int t = x;
x = y;
y = t;
}
```
- **传引用**:通过引用传递参数,函数内部对形参的修改会影响实参的值。这种方式在C++中较为常见,尤其是在需要修改实参值的情况下。
- **返回值**:
- 对于无返回值的函数,执行完最后一条语句后自动返回。
- 对于有返回值的函数,必须使用`return`语句显式返回结果。
- 示例:检查一个数及其平方和立方是否均为迴文数。
```cpp
bool palindrome(int n);
```
通过以上章节的学习,学生能够掌握如何定义、声明和调用函数,了解函数参数的不同传递方式,以及如何处理函数的返回值。这些知识点对于编写高效、可维护的C++程序至关重要。