(int)ch vs. int(ch):它们是同一个东西的不同语法吗?

108*_*108 6 c++ casting

在C++中,is(int)ch等价于int(ch).

如果没有,有什么区别?

Ada*_*eld 19

它们是同一个东西,也是一样的(int)(ch).在C++中,通常首选使用命名转换来阐明您的意图:

  • 用于static_cast在不同大小或签名的原始类型之间进行转换,例如static_cast<char>(anInteger).
  • 用于dynamic_cast将基类向下转换为派生类(仅限多态类型),例如dynamic_cast<Derived *>(aBasePtr).
  • 用于reinterpret_cast在不同类型的指针之间或在指针和整数之间进行转换,例如reinterpret_cast<uintptr_t>(somePtr).
  • 用于从变量中const_cast删除constvolatile限定符(非常危险),例如const_cast<char *>(aConstantPointer).


Kon*_*lph 10

int(x) 被标准称为函数式转换,并且在各方面都与C风格的转换相同(对于POD)[5.2.3]:

如果表达式列表是单个表达式,则类型转换表达式与相应的强制转换表达式(5.4)等效(在定义中,如果在含义中定义).