【发布时间】:2016-10-16 16:34:39
【问题描述】:
基本上我有一个双打数组。我想将此数组传递给一个函数(ProcessData),它将它们视为短整数。正在创建一个短指针并将其指向数组,然后将此指针传递给函数ok(代码1)?
这实际上与创建一个短数组、遍历每个元素并将双精度数组的每个元素转换为一个短数组然后传递短数组指针(代码 2)相同吗?谢谢
//code 1
//.....
short* shortPtr = (short*)doubleArr;
ProcessData(shortPtr);
..
//code 2
//...
short shortArr [ARRSIZE];
int i;
for (i = 0; i < ARRSIZE; i++)
{
shortArr[i] = (short)doubleArr[i];
}
ProcessData(shortArr);
【问题讨论】:
-
不,不行。这不是一回事。
-
这就像说“这是一个双精度序列,但假装它是一个短整数序列。祝你好运。”
-
如果
double占用 8 个字节,short占用 2 个字节,您将把每个double分割成 4 个不相关的部分。 -
另外,请选择一种语言C或C++。
-
感谢您的回答。这个问题适用于 C 和 C++。我们还在 C++ 中使用数组普通数组。
标签: c++ c arrays pointers casting