欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

cast operator

最编程 2024-05-07 22:28:55
...
  • 任何整数都可以转换为任何指针类型。除了空指针常量NULL(不需要强制转换)之外,结果是实现定义的,可能未正确对齐,可能不指向引用类型的对象,并且可能是陷阱表示。
  • 任何指针类型都可以转换为任何整数类型。结果是实现定义的,即使对于空指针值(它们不一定会导致值为零)。如果结果不能在目标类型中表示,则行为是未定义的(无符号整数不能对来自指针的强制执行模运算)
  • 任何指向对象的指针都可以转换为任何其他指向对象的指针。如果该值未针对目标类型正确对齐,则行为未定义。否则,如果该值被转换回原始类型,则它与原始值相等。如果指向对象的指针转换为指向任何字符类型的指针,则结果指向该对象的最低字节,并且可以递增至目标类型的大小(换言之,可用于检查对象表示或制作memcpy或通过复制memmove)。
  • 任何指向函数的指针都可以转换为指向任何其他函数类型的指针。如果生成的指针转换回原始类型,则它与原始值相等。如果转换的指针用于进行函数调用,则行为是未定义的(除非函数类型兼容)
  • 在指针(对象或函数)之间进行转换时,如果原始值是其类型的空指针值,则结果是目标类型的正确空指针值。