什么是 C++ 中对“char()”、“uint8_t()”、“int64_t()”、整数“T()”等的调用?

Gab*_*les 0 c++ initialization char

我以前从未见过这个函数的调用char()。这是在哪里描述的,它是什么意思?此用法是此 cppreference.com 社区 wiki 页面上示例的一部分:https://en.cppreference.com/w/cpp/string/basic_string/resize

short_string.resize( desired_length + 3 );
std::cout << "6. After:  \"";
for (char c : short_string) {
    std::cout << (c == char() ? '@' : c);  // <=== HERE ===
}
Run Code Online (Sandbox Code Playgroud)

描述中的措辞对我来说也没有任何意义,我不明白它在说什么:

将附加字符初始化为CharT().

在上下文中突出显示:

在此输入图像描述

相邻相关

  1. 促使我研究该std::string::resize()方法的原因是尝试学习如何预先分配 astd::string以便在 C 函数调用中用作缓冲区char*。这可以通过首先std::string调用my_string.resize()函数来预分配 来实现。然后,您可以安全地&my_string[0]作为标准char*写入索引my_string.size() - 1。也可以看看:
    1. 直接写入 std::string 的 char* 缓冲区
    2. 有没有办法获取 std:string 的缓冲区
    3. 如何将 a 转换std::stringconst char*orchar*
      1. 请参阅我对此问题的详细回答

更新:

  1. 在提出最初的问题 3.5 个月后,我也意识到了这个问题:What does int()in C++?

Hol*_*Cat 6

0它以指定类型返回,与 相同char(0)。这称为值初始化

该语法模仿了调用类的默认构造函数的语法。