gpt4 book ai didi

c++ - 是否可以将一种类型的数组转换为大小不同的另一种类型的数组?

转载 作者:行者123 更新时间:2023-11-27 23:56:17 26 4
gpt4 key购买 nike

例如,我可以拿

int array[12];

并通过转换指针将其转换为 char[48],并假设 int 在我的机器上是 4 个字节?什么是正确的语法,它是否普遍适用?

我知道新数组的大小不会是明确的,我必须自己做除法,我知道在我的机器上 int 是 4 个字节。

最佳答案

正确的 C++ 方法是使用 reinterpret_cast :

int array[12];
char* pChar = reinterpret_cast<char*>(array);

你应该注意到 sizeof(array) 将是 12*sizeof(int) 等于 12 * (sizeof(int)/sizeof( char)),在大多数(如果不是任何)机器中它大于 sizeof(char[3]) 因为 sizeof(char) 通常是 sizeof(int) 的四分之一)

所以 int array[12]; 可以解释为 char array[12*4];

关于c++ - 是否可以将一种类型的数组转换为大小不同的另一种类型的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42448732/

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