1.把函数当成一台自动售货机:
| 动作 | 类比 |
|---|---|
| 你投币按下按钮 | 调用函数 |
| 机器掉出一罐可乐 | 函数返回一罐可乐 |
| 可乐的“类型”是碳酸饮料 | 返回值类型是Cola |
在 C 语言里,只不过可乐变成了int、double、char *……
2.看个最小例子
int add(int a, int b) // 返回值类型是 int
{
return a + b; // 返回一个整数
}
- 因为声明了
int,所以return必须给出整数。 - 调用者拿到的东西也是整数:
int x = add(3, 4); // x 得到 7
如果把函数改成:
double add(int a, int b) // 返回值类型换成 double
{
return a + b; // 自动先转成小数再返回
}
那么调用者拿到的是小数:
double x = add(3, 4); // x 得到 7.0
3. 常见返回值类型速查
| 类型 | 含义 | 典型场景 |
|---|---|---|
int | 整型 | 计算结果、错误码(0 表示成功) |
double / float | 浮点型 | 数学函数,如sqrt |
char | 字符 | 大小写转换 |
char * | 字符串首地址 | strcpy返回目标串地址 |
void | 空类型 | 函数不返回任何有用值,只干活 |
4.特别注意
-
return 语句必须与返回值类型匹配
int foo() { return 3.14; // 3.14 被强制截断成 3,编译器会报警告 } -
void 函数别写 return 值
void hello() { return; // ✅ 只能写裸 return; return 0; // ❌ 报错 } -
main 函数的返回值
标准规定int main(...),把状态码交给操作系统:return 0;→ 告诉系统“程序正常结束”return 1;或其他非 0 → “出错了”
5.一张图记住
函数声明:返回值类型 函数名(参数列表)
↑
决定 return 必须给出什么
决定调用者能收到什么
6.总结一句话
返回值类型就是函数与外部世界的“交货合同”:你给什么、我拿什么,签字后不许反悔。返回值类型”就是函数运行完后,扔回给调用者的那份“结果”的数据类型。
最后分享一下手稿(请忽略掉潦草的字迹)