【问题标题】:what is the difference between int(b) and (int)b?int(b) 和 (int)b 有什么区别?
【发布时间】:2023-01-24 00:10:16
【问题描述】:

(int)b 和 int(b) 之间的区别

这些值是否有可能永远不同

int(b) 

(int)b

如果不是,那么两者之间有什么区别?

有人请澄清

my code

【问题讨论】:

标签: c++


【解决方案1】:

两者都是显式强制转换表达式。

  • (int) b是所谓的C 风格的转换表达式这将尝试将 b 的值转换为 int 类型

  • int(b)是所谓的函数式类型转换表达式.根据cppreference

    如果括号中只有一个表达式,则此强制转换表达式正好等同于相应的 C 风格强制转换表达式

因此,在您的上下文中,两者都是严格等效的。话虽这么说,作为转换的惯用 C++ 方式是:static_cast<int>(b)。最后一种方法的好消息是不会无意中忽略 const 修饰符......

【讨论】:

  • 不管 cppreference 怎么说,它们并不完全相同。当要转换的类型的名称有多个单词时,它们是不同的。转换为 long long 可以使用 C 风格的转换来完成,但不能使用函数风格的转换。
猜你喜欢
  • 2014-10-19
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
  • 2019-12-18
  • 2012-07-03
  • 1970-01-01
  • 2016-05-24
  • 2021-06-18
相关资源
最近更新 更多