You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言中return (int,int)及return(kk,ll)语句的含义与计算咨询

C语言中return (int, int);的含义及示例代码解析

嘿,你遇到的这个问题其实是踩到了C语言里逗号运算符的小坑,很多刚接触C的同学都会在这里绕晕,我来给你掰扯清楚:

核心:逗号运算符的作用

首先要明确:这里括号里的逗号不是用来分隔函数参数的逗号,而是C语言里的一个独立运算符——逗号运算符。它的规则非常直接:

  • 从左到右依次计算逗号分隔的每一个表达式
  • 整个逗号表达式的最终结果,是最后一个表达式的计算值,前面的表达式就算有结果也会被直接丢弃

针对你的示例代码分析

咱们拆解你贴的这段代码:

#include<stdio.h>
int addmult(int ii, int jj) {
    int kk, ll;
    kk = ii + jj; // 当ii=3、jj=4时,kk=7
    ll = ii * jj; // 此时ll=12
    return (kk, ll); // 这是关键行
}

这里的return (kk, ll);按照逗号运算符的规则执行:

  1. 先计算kk的值(这里是7,但这个值没有任何实际作用,直接被丢弃)
  2. 接着计算ll的值(12)
  3. 整个逗号表达式的结果就是12,所以这行代码和return ll;完全等价

因此在main函数里,不管调用多少次addmult(3,4),返回的都是12,最终printf输出的结果就是12 12。

额外提醒:别想用逗号实现“多返回值”

很多人会误以为这种写法能让函数返回多个结果,但C语言的return只能返回单个值。如果需要从函数里带出多个结果,你得用这两种方法:

  • 用指针作为函数参数,通过指针修改外部变量的值
  • 定义一个结构体,把需要返回的多个值打包成结构体对象返回

内容的提问来源于stack exchange,提问作者UNV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 17:12:41