在谷歌搜索30分钟后,我决定在这里提问 如果我不能正确理解下面的代码行,则可能是无效的问题
result += char(int(text[i]+s-65)%26 +65);
在上面的代码中char()是一个函数吗?如果是,那么我无法找到有关它的任何信息,如果不是,这是什么? 对于内部int()也有同样的疑问。
以上代码是从C ++程序复制的。
答案 0 :(得分:2)
它们不是功能。它们只是类型转换的替代语法。 char(x)
与static_cast<char>(x)
差不多。
通常,在C ++中,人们应该偏向于C ++特定的构造来投射对象(static_cast
,dynamic_cast
,const_cast
和reinterpret_cast
),以提供帮助。确保在投射对象时不要做任何愚蠢的事情。因此,在您的代码示例中,建议将其重写为
result += static_cast<char>(static_cast<int>(text[i]+s-65)%26 +65);
但从功能上讲,它们都是相同的。