gpt4 book ai didi

c++ - C++ 中的 char() 类型是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:00:19 26 4
gpt4 key购买 nike

我已经在 GCC 编译器中编译并运行了以下代码片段。成功了。

#include <iostream>
using namespace std;

int main()
{
char ch = char('A');
cout<<ch<<endl;
return 0;
}

输出:

A

那么,char()是内置类型函数还是系统调用?

最佳答案

从技术上讲,这是一个类型转换。标准中用于描述语法的短语是“显式类型转换(功能符号)”。来自标准([expr.type.conv]/2)的效果描述如下:

If the initializer is a parenthesized single expression, the type conversion expression is equivalent (in definedness, and if defined in meaning) to the corresponding cast expression (8.4). [...] [T]he expression is a prvalue of the specified type whose result object is direct-initialized (11.6) with the initializer.

在这种情况下,您从“A”(字 rune 字)开始,它的类型已经是 char 1,并将其转换为 char (所以 Actor 没有任何效果,也没有完成任何事情)。

如果您为具有采用正确参数类型的构造函数的类型执行此操作,则该类型的构造函数可用于执行转换。但这也是其他转换符号的情况,例如使用 (T)xstatic_cast<T>(x) .与可以进行转换的任何其他语法相比,这种语法并没有使它更多地使用 ctor。由于您已明确进行转换,因此它可用于调用标记为 explicit 的 ctor ,但除此之外,它与 T ch = value; 并没有什么不同(就是否使用 ctor 而言)。 (没有类型转换,但可能包括转换)。


<支持>1. 请注意,这是 C++ 与 C 不同的地方。在 C 中,字 rune 字的类型为 int。 , 不是 char .

关于c++ - C++ 中的 char() 类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44322372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com