C++中的void函数

在C++中,void 函数是一种特殊类型的函数,它不返回任何值。这意味着 void 函数执行一些操作,但不产生任何结果或值,也不返回到调用它的地方。通常,void 函数用于执行一些任务或操作,而不需要返回结果。

返回类型 void

函数不一定需要将值返回给调用者。为了告诉编译器函数不返回任何值,可以使用返回类型 void。例如:

#include <iostream>

// void 表示函数不会向调用者返回任何值
void printHi()
{
    std::cout << "Hi" << '\n';

    // 由于这个函数不返回值,因此不需要 return 语句
}

int main()
{
    printHi(); // 可行:调用了函数 printHi(),不返回任何值

    return 0;
}

在上面的示例中,该printHi函数有一个有用的行为(它打印“Hi”),但它不需要向调用者返回任何内容。因此,printHi给出了一个void返回类型。

main调用时printHi,执行 中的代码printHi,并打印“Hi”。在执行printHi结束时,控制权返回到main并且程序继续进行。

不返回值的函数称为无值返回函数(或void 函数)。

void 函数不需要 return 语句

Void(无返回值)函数不需要 return 语句

在 void 函数中,函数会在函数末尾自动返回给调用者,无需 return 语句。

在 void 函数中,可以使用一个没有返回值的 return 语句 —— 这样的语句会导致函数在执行 return 语句的地方返回给调用者。因此,在 void 函数的末尾放置一个空的 return 语句是多余的

#include <iostream>

// void表示该函数不向调用者返回任何值
void printHi()
{
    std::cout << "Hi" << '\n';

    return; // 告诉编译器返回给调用者 —— 这是多余的,因为函数的返回本来就会在函数末尾发生!
} // 函数将在此处返回给调用者

int main()
{
    printHi();

    return 0;
}

void函数不能在需要值的表达式中使用

某些类型的表达式需要值。例如:

#include <iostream>

int main()
{
    std::cout << 5; // 正确:5 是一个文字值,我们发送它到控制台进行打印
    std::cout << ;  // 编译错误:未提供数值

    return 0;
}

在上面的程序中,要打印的值需要在 std::cout << 的右侧提供。如果没有提供值,编译器将产生语法错误。由于第二个 std::cout 调用未提供要打印的值,这导致了错误。

#include <iostream>

// void 表示该函数不会返回值给调用者
void printHi()
{
    std::cout << "Hi" << '\n';
}

int main()
{
    printHi(); // 正确:调用函数 printHi(),不期望返回值

    std::cout << printHi(); // 编译错误

    return 0;
}

在上面的程序中,printHi 函数被定义为 void 类型,这意味着它不会返回值给调用者。因此,第一个 printHi() 调用是合法的,因为它只是调用函数而不期望返回值。

但是,第二个 std::cout 语句中的 printHi() 调用是错误的,因为 printHi() 不返回值,而您试图将其作为表达式的一部分输出到 std::cout。这会导致编译错误。如果您想要输出函数的结果,函数应该返回一个值。

从 void 函数返回值是编译错误

尝试从非值返回函数返回值将导致编译错误:

void printHi() // This function is non-value returning
{
    std::cout << "In printHi()" << '\n';

    return 5; // compile error: we're trying to return a value
}

原创文章,作者:jkhxw,如若转载,请注明出处:https://www.jkhxw.com/cpp-void-functions/

(0)
上一篇 2023年10月3日
下一篇 6天前

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注