可以把 return 理解为一个“任务完成,并带回结果”的指令,它有两个核心作用:

- 立即终止函数:当程序执行到
return语句时,会立刻停止当前函数的执行,并跳转回调用这个函数的地方。 - 返回一个值:
return可以将一个值(或一个变量)从函数内部传递到函数外部,也就是传递给调用者。
return 的两个核心作用详解
作用1:终止函数执行
return 就像一个函数的“出口”,一旦程序执行到这个出口,函数里的其他代码就不会再被执行了。
示例:
#include <stdio.h>
void sayHelloAndExit() {
printf("Hello, "); // 这行会被执行
return; // 遇到 return,函数立刻结束
printf("World!"); // 这行永远不会被执行
}
int main() {
sayHelloAndExit();
printf("This will be printed after the function returns.\n");
return 0;
}
输出:
Hello, This will be printed after the function returns.
可以看到,sayHelloAndExit 函数在执行完 printf("Hello, "); 后,遇到了 return,直接结束了,printf("World!"); 没有被打印。

作用2:返回一个值
这是 return 更常见、更重要的用途,函数可以像一个“加工厂”,接收一些原材料(参数),经过处理后,产出一件产品(返回值)。return 就是把这个“产品”送出工厂的过程。
语法格式:
return 表达式;
这里的“表达式”可以是任何有值的变量、常量或计算结果。
示例:计算两个数的和
#include <stdio.h>
// 这是一个函数,它的任务是计算两个整数的和
// int 表示这个函数将返回一个整数值
int add(int a, int b) {
int sum = a + b; // 计算和
return sum; // 把计算结果 "sum" 返回出去
}
int main() {
int result = add(5, 3); // 调用 add 函数,并把返回的值赋给 result 变量
printf("The sum is: %d\n", result); // 打印结果 8
return 0;
}
执行流程分解:

main函数调用add(5, 3)。- 程序跳转到
add函数,a的值是 5,b的值是 3。 add函数内部计算sum = 5 + 3,sum的值变为 8。- 执行到
return sum;,函数立刻结束,并将sum的值(也就是 8)返回。 main函数中,add(5, 3)这个表达式整体就代表了返回的值 8。int result = 8;。- 程序继续执行
printf,打印出The sum is: 8。
return 的不同使用场景
有返回值的函数
这类函数在定义时,会指定返回值的类型(如 int, float, char, double 等)。return 语句必须返回一个与函数声明类型匹配的值。
// 返回一个字符
char getFirstChar() {
return 'A';
}
// 返回一个浮点数
float calculatePi() {
return 3.14159f;
}
没有返回值的函数 (void 函数)
如果一个函数只是执行一些操作(比如打印信息),而不需要返回任何值,那么它的返回类型就是 void。
对于 void 函数,return 语句是可选的,如果不需要在函数中途退出,可以完全不用 return,如果想在函数中途提前结束,可以使用 return; (不带任何值)。
示例:
#include <stdio.h>
// 这个函数只负责打印,不需要返回值
void printMessage() {
printf("This is a message.\n");
// 这里可以不用 return,函数执行到最后会自动结束
}
// 这个函数可能根据条件提前结束
void checkCondition(int value) {
if (value < 0) {
printf("Value is negative. Exiting function.\n");
return; // 提前结束函数,后面的代码不执行
}
printf("Value is positive or zero.\n");
}
int main() {
printMessage(); // 正常调用
checkCondition(-5); // 会触发提前 return
checkCondition(10); // 会正常执行到最后
return 0;
}
输出:
This is a message.
Value is negative. Exiting function.
Value is positive or zero.
main 函数中的 return
main 函数是程序的入口,它也可以使用 return。main 函数的返回值通常用来告诉操作系统(如 Windows, Linux)程序是否成功执行。
return 0;:表示程序成功执行完毕,没有发生错误,这是最常见的情况。return 非0值;:表示程序在执行过程中遇到了错误或异常,非零值通常用来表示错误码。
示例:
#include <stdio.h>
int main() {
printf("Program starting...\n");
// 模拟一个操作
int success = 1; // 假设 1 代表成功
if (success) {
printf("Program finished successfully.\n");
return 0; // 返回 0,表示成功
} else {
printf("Program failed!\n");
return 1; // 返回 1,表示失败
}
}
当你在命令行运行这个程序后,可以通过检查 (Linux/macOS) 或 %ERRORLEVEL% (Windows) 变量来获取 main 函数的返回值。
总结与关键点
| 特性 | 说明 |
|---|---|
| 核心作用 | 终止当前函数的执行。 将一个值从函数内部传递到函数外部。 |
| 有返回值的函数 | 函数定义时需指定返回类型(如 int)。return 后必须跟一个与类型匹配的值。 |
无返回值的函数 (void) |
return 语句是可选的,如果使用,只能是 return; (不带值),用于提前退出函数。 |
main 函数的 return |
return 0 表示程序正常结束。return 非0 表示程序异常结束,这是向操作系统报告状态的约定。 |
| 强制性 | 如果一个函数声明有返回值(非 void),那么该函数必须包含至少一个 return 语句来返回一个值,否则会导致编译警告或错误。 |
return 是 C 语言中函数与外界沟通的桥梁,也是控制函数执行流程的关键工具,掌握 return 是学习 C 语言函数的基础。
