打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Type-Cast Conversions
You can use type casts to explicitly convert types.
Syntax
cast-expression:
unary expression
( type-name ) cast-expression
type-name:
specifier-qualifier-list abstract-declarator opt
The type-name is a type and cast-expression is a value to be converted to that type. An expression with a type cast is not an l-value. The cast-expression is converted as though it had been assigned to a variable of type type-name. The conversion rules for assignments (outlined in Assignment Conversions) apply to type casts as well. The following table shows the types that can be cast to any given type.
Legal Type Casts
Destination Types
Potential Sources
Integral types
Any integer type or floating-point type, or pointer to an object
Floating-point
Any arithmetic type
A pointer to an object, or (void *)
Any integer type, (void *), a pointer to an object, or a function pointer
Function pointer
Any integral type, a pointer to an object, or a function pointer
A structure, union, or array
None
Void type
Any type
Any identifier can be cast to void type. However, if the type specified in a type-cast expression is not void, then the identifier being cast to that type cannot be a void expression. Any expression can be cast to void, but an expression of type void cannot be cast to any other type. For example, a function with void return type cannot have its return cast to another type.
Note that a void * expression has a type pointer to void, not type void. If an object is cast to void type, the resulting expression cannot be assigned to any item. Similarly, a type-cast object is not an acceptable l-value, so no assignment can be made to a type-cast object.
Microsoft Specific
A type cast can be an l-value expression as long as the size of the identifier does not change. For information on l-value expressions, see L-Value and R-Value Expressions.
END Microsoft Specific
You can convert an expression to type void with a cast, but the resulting expression can be used only where a value is not required. An object pointer converted to void * and back to the original type will return to its original value.
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
关于C++中的类型转换
Type Casting
Understanding C++ Casts
C++中 explicit 关键字作用详解
C++运算符优先级
[Error] assignment to expression with array type
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服