C 语言的函数可以返回数组以外(不包括数组指针)的任何类型.
不写明返回类型, 在以前的 C 语言版本中是默认返回 int, 现在 C99、C++ 已不支持.
void 表示没有返回值, 也就无须 return 语句; 如果是其他语句必须有 return 语句.
在 main 函数中(只是 main 函数)若忘掉 return, 有些编译器会自动添加 return 0;
1. 每执行 return 语句函数将会退出:
#include <stdio.h> int main(void) { printf("111\n"); printf("222\n"); return 0; /* 之后的语句将不会执行 */ printf("333\n"); printf("444\n"); getchar(); return 0; }
2. 如果函数没有返回值, 可以借无参数的 return 跳出:
#include <stdio.h> void prn(void); int main(void) { prn(); getchar(); return 0; } void prn(void) { printf("111\n"); printf("222\n"); return; /* 无参数的 return */ printf("333\n"); printf("444\n"); }
3. return 后面不是"等号", 但返回值也可以写在括号中:
#include <stdio.h> long long MySqr(int x); int main(void) { int i = 9; i = MySqr(i); printf("%d\n", i); getchar(); return 0; } long long MySqr(int x) { return(x*x); /* 返回值在括号中 */ }
4. return 与 exit 的区别:
main 函数结束时, 程序也就结束了, return 0; 或 return(0); 返回给系统的 0 表示正常退出.
如果返回了非零的值, 一般写做: return 1; 或 return(1); 表示异常结束.
在一般函数中 return 只是退出当前函数;
但在任何地方, exit(1); 都是退出程序, 其中的 1 也是给系统的返回值, 表示异常退出;
异常退出也可以使用 abort(); 这个两个函数(exit、abort)都声明在 stdlib.h
#include <stdio.h> #include <stdlib.h> void prn(void); int main(void) { prn(); getchar(); return 0; } void prn(void) { printf("abc\n"); exit(1); /* 异常退出程序 */ }
5. 每执行 return 语句函数将会退出:
#include <stdio.h> int main(void) { printf("111\n"); printf("222\n"); return 0; /* 之后的语句将不会执行 */ printf("333\n"); printf("444\n"); getchar(); return 0; }
6. 注意返回值的类型:
#include <stdio.h> float average(int a, int b, int c); int main(void) { printf("%g\n", average(2,6,9)); getchar(); return 0; } float average(int a, int b, int c) { return (a + b + c)/3.0; /* 假如这里没有 .0 将不会返回正确的结果*/ }
分类:
学习 C 语言
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2007-12-02 给动态数组添加一个元素
2007-12-02 长字串与宽字串
2007-12-02 长字串与短字串