将const uint16 arr []转换为uint16 arr []

时间:2012-12-18 05:31:48

标签: c++ visual-c++

如何使用c ++将

const uint16 arr[]
转换为
uint16 arr[]
?请发一个例子。在此先感谢。

2 个答案:

答案 0 :(得分:2)

如果你对变量名不感兴趣,而且对于非const数组有不同的内存,那么这是最快的方法。

const uint16 arr[] = {1,2,3,4}
unint16 arr1[4];
memcpy(arr1,arr,sizeof(arr)) 

答案 1 :(得分:0)

#include <stdint.h>
#include <iostream>

using namespace std;

int main(int argc, char* argv[]) {

const uint16_t  arr1[] = {1,2,3,4};
uint16_t* arr2 = const_cast<uint16_t*>(arr1);

for (int i=0; i<4; i++) {
    cout << "arr2[" << i << "] = " << arr2[i] << endl;
}
}

请注意,我使用了arr2的指针表示法。如果你不明白为什么要尝试改变 到

的那一行
uint16_t arr2 = const_cast<uint16_t*>(arr1); 

并查看编译器告诉你的内容。