一、C++ 中的 return 语句
在 C++ 中,return 语句用于退出一个函数并将一个值(如果需要的话)返回给函数的调用者。它在控制程序流程方面起着非常重要的作用,并确保函数能够向代码的其他部分提供结果。
语法
下面是使用 return 语句的语法:
return [expression];
其中,“expression”是可选的,专门用于函数。如果提供,则它指定了要返回给调用者的值。
return 语句示例
下面是一个 return 语句的例子:
#include <iostream>
using namespace std;
int sum(int a, int b){
return a + b;
}
int main(){
int ans = sum(5, 2);
cout << "The sum of two integers 5 and 2 is: " << ans << endl;
return 0;
}
输出
The sum of two integers 5 and 2 is: 7
二、return 语句的关键方面
-
函数终止 当执行 return 语句时,函数立即退出,并可选择性地将值返回给调用者。
-
返回类型
-
值返回 在此,return 语句中指定的值将被送回给调用者。这对于执行计算或需要提供结果的函数至关重要。
int Add(int a, int b) {
return a + b;
}
-
无返回值(void) 对于声明为 void 的函数,return 语句可以在没有表达式的情况下使用,以便提前退出函数。
void GetMessage() {
cout << "Hello, TutorialsPoint Learner!";
return;
}
-
多个 return 语句 一个函数可以包含多个 return 语句,通常在条件语句中可以看到这种情况。
int max(int a, int b) {
if (a > b)
return a;
else
return b;
}
-
返回对象 函数可以返回对象,这对于返回封装在类或结构体中的多个值很有用。
struct point {
int x, y;
};
point getOrigin() {
return {0, 0};
}
-
早期退出 return 语句可用于在遇到错误或特殊条件时提前退出函数。
int divideInteger(int a, int b) {
if (b == 0) {
cerr << "Error: Division by zero!" << endl;
return -1;
}
return a / b;
}
三、C++ 中的返回类型和值处理
在 C++ 中,函数的返回类型决定了函数将返回给调用者何种类型的值(如果有)。正确处理返回类型和值对于确保函数按预期工作并与程序的其他部分无缝集成非常重要。
-
原始数据类型 原始数据类型是由 C++ 提供的基本内置类型。常见的例子如 int, float, double, char 等。
示例
#include <iostream>
using namespace std;
int getSquare(int num) {
return num * num;
}
int main() {
int value = 5;
int result = getSquare(value);
cout << "The square of " << value << " is " << result << endl;
return 0;
}
输出
The square of 5 is 25
-
用户定义的类型 用户定义的类型包括结构体和类。这些类型允许您定义复杂的自定义数据结构,以满足您的具体需求。
结构体示例
#include <iostream>
using namespace std;
struct Point {
int x;
int y;
};
Point createPoint(int x, int y) {
Point p;
p.x = x;
p.y = y;
return p;
}
int main() {
Point p = createPoint(10, 20);
cout << "Point coordinates: (" << p.x << ", " << p.y << ")" << endl;
return 0;
}
输出
Point coordinates: (10, 20)
类示例
#include <iostream>
using namespace std;
class rectangle {
public:
rectangle(int w, int h) : width(w), height(h) {}
int getArea() const {
return width * height;
}
private:
int width;
int height;
};
rectangle createRectangle(int width, int height) {
return rectangle(width, height);
}
int main() {
rectangle rect = createRectangle(10, 5);
cout << "Area of given Rectangle is: " << rect.getArea() << endl;
return 0;
}
输出
Area of given Rectangle is: 50
-
引用和指针 引用和指针用于引用变量或对象而不进行任何拷贝。这在需要效率或在必要时修改原始数据时非常有用。
通过引用返回
#include <iostream>
using namespace std;
int globalValue = 100;
int& getGlobalValue() {
return globalValue;
}
int main() {
int& ref = getGlobalValue();
ref = 200;
cout << "Global Value: " << globalValue << endl;
return 0;
}
输出
Global Value: 200
通过指针返回
#include <iostream>
using namespace std;
int* createArray(int size) {
int* array = new int[size];
for (int i = 0; i < size; ++i) {
array[i] = i * 10;
}
return array;
}
int main() {
int* myArray = createArray(5);
for (int i = 0; i < 5; ++i) {
cout << myArray[i] << " ";
}
delete[] myArray;
return 0;
}
输出
0 10 20 30 40