【发布时间】:2013-04-04 22:51:43
【问题描述】:
我正在做一些练习来弄清楚如何在使用指针更改数组中的值后访问它们。有人能指出为什么第一个输出没有显示所需的输出吗?我试图让两个 cout 都打印 1234,一个使用新指针,一个使用数组中的位置
int main()
{
char myArray[50]={0};
short* sizeOfAlloc=(short*)(myArray+5);
*sizeOfAlloc=1234;
cout << (short*)(myArray+5) <<endl;
cout << *sizeOfAlloc <<endl;
system("pause");
}
【问题讨论】:
-
在第一行,不要取消引用。
-
myArray 是
char**,但您将其转换为short*。 2个问题:1.(主要的),你改变了间接级别。 2. 你已经从char转换为short,只有当你真的知道自己在做什么时才应该这样做(更有可能你想转换为int16_t) -
谢谢丹尼尔和戴夫。关于您的第一条评论,戴夫,您是否知道将某些字符转换为双精度或其他字符的更好方法?
标签: c++ arrays pointers char byte