gpt4 book ai didi

c++ - reinterpret_cast 用法之间的区别

转载 作者:行者123 更新时间:2023-11-30 05:49:17 48 4
gpt4 key购买 nike

这两个cast语句是一样的吗?它们产生相同的结果。

const std::int16_t i =  3;
char a[ 2 ];

*reinterpret_cast<std::int16_t*>(a) = i;
reinterpret_cast<std::int16_t&>(a) = i;

最佳答案

是的,因为隐式数组到指针的转换。

第一次尝试转换指针;所以数组被转换为一个指针(指向它的第一个元素)以允许该转换。然后取消引用指针,以覆盖数组的字节。

第二个将对数组的引用转换为对整数的引用;对该引用的赋值再次覆盖数组的字节。

如果您尝试使用非数组类型,第一个将无法编译;在转换该指针之前,您必须显式获取地址 &a

关于c++ - reinterpret_cast 用法之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27802381/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com