C语言中返回值是什么意思

今天是2025年10月29日共有8人阅读

C 语言的 “函数” 就像一个 “工具黑箱”—— 你给它输入数据(参数),它帮你完成特定任务(比如计算、判断),最后给你一个 “结果”,这个 “结果” 就是返回值。

举个生活例子:你让计算器(函数)算 “3+5”(参数),计算器显示 “8”(结果),这个 “8” 就相当于 C 语言函数的返回值。

从代码角度看,返回值是函数执行完毕后,通过return语句传递给调用者的 “具体数据”,目的是让调用者能使用函数的处理结果。

根据函数是否返回数据,C 语言函数分为 “有返回值函数” 和 “无返回值函数”,这是理解返回值的关键:

1. 有返回值函数:函数会 “主动汇报结果”

“有返回值” 的意思是:函数执行完后,会通过return语句返回一个具体数据(比如整数、小数、字符),调用者可以把这个数据存起来、打印出来或继续处理。

(1)定义规则:必须声明返回类型

有返回值的函数,定义时必须在函数名前声明 “返回值的类型”(比如int表示返回整数,float表示返回小数),且必须用return语句返回对应类型的数据。

例子:计算两数之和的函数(返回整数)

c

运行

// 声明返回类型为int(整数),表示函数会返回一个整数

int add(int a, int b) {

    int result = a + b;

    return result;  // 返回计算结果(有返回值)

}


int main() {

    // 调用add函数,接收返回值并存储到sum中

    int sum = add(3, 5);  // sum的值就是add返回的8

    printf("3+5的结果是:%d\n", sum);  // 输出:3+5的结果是:8

    return 0;

}

(2)常见场景:需要 “获取结果” 的函数

比如计算(求和、求积)、判断(是否为偶数)、查找(数组中的最大值)等,都需要返回值传递结果:

c

运行

// 判断一个数是否为偶数(返回1表示是,0表示否)

int is_even(int num) {

    if (num % 2 == 0) {

        return 1;  // 是偶数,返回1

    } else {

        return 0;  // 不是偶数,返回0

    }

}

2. 无返回值函数:函数只 “做事不汇报结果”

“无返回值” 的意思是:函数只执行操作(比如打印、修改数据),不返回任何数据,调用者无需(也无法)接收结果。

(1)定义规则:用void声明,可省略return

无返回值的函数,定义时必须用void(表示 “空类型”)声明返回类型,且return语句可写可不写(如果写,不能带数据,只能写return;)。

例子:打印问候语的函数(只做事,不返回结果)

c

运行

// 声明返回类型为void,表式无返回值

void print_greeting() {

    printf("Hello, C语言!\n");  // 只执行打印操作

    // 可以省略return,函数执行完自动结束

}


int main() {

    print_greeting();  // 调用函数,直接执行打印,无需接收结果

    return 0;

}

(2)常见场景:只需要 “执行动作” 的函数

比如打印信息、初始化数据、交换变量值等,这些操作不需要返回结果,用无返回值函数更合适:

c

运行

// 交换两个整数的值(通过指针修改原变量,无需返回值)

void swap(int *a, int *b) {

    int temp = *a;

    *a = *b;

    *b = temp;

}

return是实现 “返回值传递” 的核心语句,它的作用有两个:

传递返回值:把函数的处理结果传给调用者(仅用于有返回值的函数);

结束函数:让函数立刻停止执行,不管后面还有多少代码。

例子:return的双重作用

c

运行

int find_max(int a, int b) {

    if (a > b) {

        return a;  // 返回a,同时结束函数(下面的代码不执行)

    }

    return b;      // 返回b,结束函数

}

注意:

有返回值的函数,return后必须跟一个与 “返回类型” 匹配的数据(比如int函数返回整数);

无返回值的函数(void),return后不能跟数据(只能写return;),甚至可以省略。

1. “C 语言中返回值是 0 是什么意思?”

最常见于main函数(程序入口函数),main函数的返回值是int类型,返回 0 表示 “程序正常结束”,非 0 值(比如 1、-1)表示 “程序异常结束”(比如遇到错误)。

这是 C 语言的约定,操作系统会通过main的返回值判断程序是否正常运行:

c

运行

int main() {

    // 程序正常执行完所有代码

    return 0;  // 告诉操作系统:我正常结束啦!

}

2. “有返回值和没有返回值是什么意思?”

有返回值:函数会 “输出结果”,调用者可以用这个结果做后续操作(比如计算、判断);

没有返回值:函数只 “执行动作”,不输出结果,调用者只需让它 “做事” 即可。

简单说:有返回值是 “函数给你一个答案”,无返回值是 “函数帮你做一件事”。

3. “返回值被忽略是什么意思?”

这是编译器的警告(不是错误),意思是 “你调用了有返回值的函数,但没使用它的返回值”。

比如调用add(3,5)却不用变量接收结果:

c

运行

int add(int a, int b) { return a + b; }


int main() {

    add(3, 5);  // 调用add并返回8,但没使用这个值

    // 编译器会警告:“返回值被忽略”

    return 0;

}

解决方法:要么用变量接收返回值(int sum = add(3,5);),要么如果确实不需要结果,可忽略警告(不影响程序运行)。

4. “有参返回值是什么意思?”

“有参” 指函数有参数(输入数据),“返回值” 指函数有输出结果,合起来是 “既需要输入数据,又会输出结果的函数”,这是 C 语言中最常见的函数类型:

c

运行

// 有参数(a,b),有返回值(a*b的结果)

int multiply(int a, int b) {  // 有参

    return a * b;  // 有返回值

}

五、避坑指南:新手常犯的返回值错误

返回类型与return数据不匹配错误:声明返回int,却返回小数

c

运行

int get_num() {

    return 3.14;  // 错误:返回类型是int,数据是float

}

void函数返回数据错误:void函数用return带数据

c

运行

void print() {

    return 5;  // 错误:void函数不能返回数据

}

有返回值函数忘记return错误:int函数没写return,会返回随机值

c

运行

int sub(int a, int b) {

    int res = a - b;

    // 忘记写return res; 会返回垃圾值

}

C语言中返回值的分词解释

拼音:yǔ yù

[yǔ]告诉。 【组词】:居,吾...查看详细解释

拼音:yán

话:~语。语~。格~。诺~。发~。有~在先。~外之意。...查看详细解释

拼音:zhōng zhòng

[zhōng]方位词。跟四周的距离相等;中心...查看详细解释

拼音:fǎn

回:往~。遣~。流连忘~。一去不复~。我于13日~京。...查看详细解释

拼音:huí

曲折环绕:~旋。巡~。迂~。~形针。峰~路转。从...查看详细解释

拼音:zhí

价钱:币~。价~。相当;值得:这支笔~五元。不~...查看详细解释