【问题标题】:How many parameters can "return statement" take in C programming? [duplicate]C编程中“返回语句”可以带多少参数? [复制]
【发布时间】:2019-04-08 14:40:01
【问题描述】:

code sn-p 代码如下:

#include <stdio.h>
#include <stdbool.h>

int test()
{
    return (printf("it is test\n"), false);
}

int main()
{ 
    if (false == test())
        printf("return result is false\n");
}

return 语句有效,但我不知道为什么它可以工作,因为我之前没有遇到过该语句。任何人都可以帮助解释这个 sn-p 代码中 return 语句的用法吗?

【问题讨论】:

标签: c


【解决方案1】:

要回答实际的主要问题,正好是一个,如果你想返回更多,你需要传入一个指针,或者返回一个给结构,即:

#include <stdio.h>
#include <stdbool.h>

bool test(int * data)
{
    *data = printf("it is test\n");
    return false;
}

int main()
{
    int data;
    if (false == test(&data))
        printf("return result is false, data = %d\n", data);
}

为什么会这样,请看:Comma-Separated return arguments in C function

【讨论】:

  • @hellow 标题中的实际问题是问return 可以带多少个参数,这个答案是正确的,即使使用逗号运算符,它仍然只需要一个,最正确。跨度>
  • 请注意结构体也是值,所以你真的不需要使用指针。
猜你喜欢
  • 1970-01-01
  • 2014-01-24
  • 2013-10-27
  • 2016-10-13
  • 2020-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-01
相关资源
最近更新 更多