转换转换

可以使用类型转换显式转换类型。

语法

  • 将表达式:
    一元表达式

    ( 类型名称 ) 将表达式

  • 类型名称:
    说明符限定符列表抽象声明 opt

类型名称 是类型,并 将表达式 是要转换的值为该类型。 与类型转换的表达式不是左值。 将 转换表达式 ,就象它已分配给类型 名称的变量。 分配的转换规则 (概述了 分配转换) 应用于类型转换。 下表显示可转换为任何特定类型的类型。

合法的类型转换

目标类型

潜在的源

整型

任意 integer 类型或浮点类型或指针对象

浮点

任何算术类型

指向对象的指针或 (void *)

任意 integer 类型,void *(),指向对象的指针或函数指针

函数指针

任何整型、指向对象的指针或函数指针

结构、联合或数组

使类型无效

任何类型

所有标识符可转换为 void 类型。 但是,因此,如果在转换表达式指定的类型不是 void,然后转换为该类型的标识符不能是 void 表达式。 任何表达式可转换为 void,但是,类型 void 表达式不能强制转换为其他类型。 例如,与 void 的函数返回类型不能有返回其转换为另一种类型。

请注意 void * 表达式具有类型的指针。 void,不键入 void。 如果对象转换为 void 类型,结果表达式不能分配给任何项目。 同样,强制转换对象不是可接受的左值,因此,分配不能对强制转换对象。

Microsoft 专用

,只要该标识符的大小不更改,类型转换可以是左值表达式。 有关左值表达式的信息,请参见 左值和 R 值表达式

特定于 Microsoft 的结尾

可以将表达式键入与转换的 void ,但是,可以使用生成的表达式才不需要的位置值。 对象指针转换为 void * ,并返回基元类型将返回到其原始值。

请参见

概念

类型转换(c)