C++ 函数
C++ 函数
在本教程中,我们将通过示例了解 C++ 函数和函数表达式。
函数是执行特定任务的代码块。
假设我们需要创建一个程序来创建一个圆圈并为其着色。我们可以创建两个函数来解决这个问题:
- 绘制圆的函数
- 为圆圈着色的函数
将一个复杂的问题分成更小的块使我们的程序易于理解和可重用。
有两种类型的函数:
- 标准库函数: 在 C++ 中预定义
- 用户自定义函数: 由用户创建
在本教程中,我们将主要关注用户定义的函数。
C++ 用户自定义函数
C++允许程序员定义自己的函数。
用户定义的函数对代码进行分组以执行特定任务,并为该组代码指定一个名称(标识符)。
当从程序的任何部分调用函数时,都会执行函数体中定义的代码。
C++ 函数声明
声明函数的语法是:
returnType functionName (parameter1, parameter2,...) {
// function body
}
这是一个函数声明的示例。
// function declaration
void greet() {
cout << "Hello World";
}
在这里,
- 函数名称为
greet()
- 函数的返回类型为
void
- 空括号表示它没有任何参数
- 函数体写在
{}
里面
注意: 我们将了解 returnType
和 parameters
本教程的后面部分。
调用函数
在上面的程序中,我们声明了一个名为 greet()
的函数 .使用 greet()
函数,我们需要调用它。
下面是我们如何调用上面的 greet()
功能。
int main() {
// calling a function
greet();
}
<图> 示例 1:显示文本
#include <iostream>
using namespace std;
// declaring a function
void greet() {
cout << "Hello there!";
}
int main() {
// calling the function
greet();
return 0;
}
输出
Hello there!
函数参数
如上所述,可以使用参数(参数)声明函数。参数是在声明函数时传递的值。
例如,让我们考虑下面的函数:
void printNum(int num) {
cout << num;
}
这里,int
变量 num 是函数参数。
我们在调用函数时给函数参数传递了一个值。
int main() {
int n = 7;
// calling the function
// n is passed to the function as argument
printNum(n);
return 0;
}
示例 2:带参数的函数
// program to print a text
#include <iostream>
using namespace std;
// display a number
void displayNum(int n1, float n2) {
cout << "The int number is " << n1;
cout << "The double number is " << n2;
}
int main() {
int num1 = 5;
double num2 = 5.5;
// calling the function
displayNum(num1, num2);
return 0;
}
输出
The int number is 5 The double number is 5.5
在上面的程序中,我们使用了一个函数,它有一个 int
参数和一个double
参数。
然后我们传递 num1 和 num2 作为论据。这些值由函数参数 n1 存储 和 n2 分别。
<图>注意: 调用函数时传递的参数类型必须与函数声明中定义的相应参数相匹配。
退货声明
在上述程序中,我们在函数声明中使用了 void。例如,
void displayNumber() {
// code
}
这意味着该函数没有返回任何值。
也可以从函数返回值。为此,我们需要指定 returnType
函数声明期间的函数。
然后,return
语句可用于从函数返回值。
例如,
int add (int a, int b) {
return (a + b);
}
在这里,我们有数据类型 int
而不是 void
.这意味着该函数返回一个 int
价值。
代码 return (a + b);
返回两个参数之和作为函数值。
return
语句表示函数已经结束。 return
之后的任何代码 函数内部没有执行。
示例 3:添加两个数字
// program to add two numbers using a function
#include <iostream>
using namespace std;
// declaring a function
int add(int a, int b) {
return (a + b);
}
int main() {
int sum;
// calling the function and storing
// the returned value in sum
sum = add(100, 78);
cout << "100 + 78 = " << sum << endl;
return 0;
}
输出
100 + 78 = 178
在上述程序中,add()
函数用于求两个数之和。
我们传递两个 int
文字 100
和 78
在调用函数时。
我们将函数的返回值存储在变量sum中 ,然后我们打印出来。
<图>
注意 sum 是 int
的变量 类型。这是因为 add()
的返回值 属于 int
输入。
函数原型
在 C++ 中,函数声明的代码应该在函数调用之前。但是,如果我们要在函数调用之后再定义一个函数,就需要用到函数原型。例如,
// function prototype
void add(int, int);
int main() {
// calling the function before declaration.
add(5, 3);
return 0;
}
// function definition
void add(int a, int b) {
cout << (a + b);
}
上述代码中,函数原型为:
void add(int, int);
这为编译器提供了有关函数名称及其参数的信息。这就是为什么我们可以在函数定义之前使用代码调用函数。
函数原型的语法是:
returnType functionName(dataType1, dataType2, ...);
示例 4:C++ 函数原型
// using function definition after main() function
// function prototype is declared before main()
#include <iostream>
using namespace std;
// function prototype
int add(int, int);
int main() {
int sum;
// calling the function and storing
// the returned value in sum
sum = add(100, 78);
cout << "100 + 78 = " << sum << endl;
return 0;
}
// function definition
int add(int a, int b) {
return (a + b);
}
输出
100 + 78 = 178
上述程序与示例 3 几乎相同 .唯一不同的是,这里的函数是在之后定义的 函数调用。
这就是我们在这个例子中使用函数原型的原因。
使用用户定义函数的好处
- 函数使代码可重用。我们可以声明一次并多次使用。
- 函数使程序更容易,因为每个小任务都被分成一个函数。
- 函数提高了可读性。
C++ 库函数
库函数是C++编程中的内置函数。
程序员可以通过直接调用函数来使用库函数;他们不需要自己编写函数。
C++ 中一些常见的库函数是 sqrt()
, abs()
, isdigit()
等。
为了使用库函数,我们通常需要包含定义这些库函数的头文件。
例如,为了使用诸如 sqrt()
之类的数学函数 和 abs()
,我们需要包含头文件cmath
.
示例 5:求数的平方根的 C++ 程序
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double number, squareRoot;
number = 25.0;
// sqrt() is a library function to calculate the square root
squareRoot = sqrt(number);
cout << "Square root of " << number << " = " << squareRoot;
return 0;
}
输出
Square root of 25 = 5
在这个程序中,sqrt()
库函数用于计算一个数的平方根。
sqrt()
的函数声明 在 cmath
中定义 头文件。这就是为什么我们需要使用代码 #include <cmath>
使用 sqrt()
功能。
要了解更多信息,请访问 C++ 标准库函数。
C语言