#include <iostream>
using namespace std;
void main()
{
char data[10];
short cOut;
for(int i=0;i<10;++i)
{
data[i] = i;
}
cOut = *(short *)((int *)data+1);
cout << cOut <<endl;
}
//字符数组初始化为:1到10
//data指向数组第一个元素的首地址
//转成int * 型指针,移动一个单位,到了4的首地址
//转成short指针,因为数组是字符型的,所以short指针会指向4和5 两个元素
//4和5在内存中的排列是:0000,0101,0000,0100 于是连起来就是1024+256+4=1284
【面试题】考察指针和内存布局的一个题目
最新推荐文章于 2024-07-20 15:35:45 发布