在C语言里,return 是最基础也最容易让初学者迷糊的关键字之一。它写在函数体中,主要承担两件事:把计算结果交回给调用方,以及立即终止当前函数的运行。不管是写一个小工具还是大型项目,正确理解 return 的行为都非常重要。

return 的基本作用
从语法上看,return 后面可以跟一个表达式,也可以什么都不跟。它的核心意义是:函数执行到 return 这一行时,就不会再往下走了,而是带着后面的值(如果有的话)回到调用它的地方。
1. 返回函数值
当一个函数被声明为 int、float 等类型时,通常用 return 送回一个同类型的结果。下面这个例子计算两个整数的和:
#include <stdio.h>
int add(int a, int b) {
return a + b; // 把相加结果返回给调用者
}
int main() {
int result = add(3, 5);
printf("结果是 %dn", result);
return 0;
}
在上面的代码里,add 函数通过 return a + b 把和交还给 main,main 再用变量 result 接收。
2. 提前结束函数
return 也可以用来在函数中间退出,避免执行后面的多余逻辑。比如做简单的参数检查:
#include <stdio.h>
void print_positive(int x) {
if (x <= 0) {
printf("不是正数n");
return; // 直接结束,不再执行后面的语句
}
printf("正数是 %dn", x);
}
int main() {
print_positive(-2);
print_positive(10);
return 0;
}
这里的 print_positive 被定义为 void,表示不返回任何值,所以 return 后面不带内容,只是起到退出作用。
main 函数里的 return
在 main 函数中,return 的整数会作为程序的退出状态码交给操作系统。一般写 return 0 表示正常结束,非 0 常用来代表不同类型的错误。虽然有些编译器允许省略,但显式写出是一个好习惯。
返回值类型要注意匹配
如果函数声明返回 int 却 return 了一个 float,或者反过来,编译器可能会报警告,运行时也可能得到奇怪的结果。保持良好的类型一致性能减少隐蔽 bug。
| 函数类型 | return 写法 | 说明 |
|---|---|---|
| int func() | return 10; | 必须返回整数 |
| void func() | return; | 可省略,仅用于提前退出 |
| double func() | return 3.14; | 返回浮点数 |
小结
return 在C语言里既是数据传递的出口,也是函数执行的终点。写代码时想清楚这个函数要不要给调用者答复,就能自然地决定怎么用 return。多写几个小例子练习,很快就能形成直觉。