以下是一段C++代码,它将整数变量地址分配给字符指针。
int ia = (1<<25) + (1<<24) + (1<<17) + (1<<8) + 4;
char *cArr = (char *)(&ia);
int i;
for(i = 0; i < 4; i++){ cout << (int)cArr[i] << endl; }
我选择了整数变量,以便MSB字节的值可以为3,下一个值为2,下一个值为1,而LSB字节的值为4。
现在,当我将整数的地址分配给字符指针时,将得到以下结果:
cArr[0] = 4
cArr[1] = 1
cArr[2] = 2
cArr[3] = 3
我对此结果有一些疑问:
顺便说一下,我在Windows PC上工作
最佳答案
1)。不,这取决于计算机体系结构和硬件。这是可以作为引用的表格。
2)。基本教程。希望这足够了。
http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html
3)。从表窗口中可以看到,与堆栈无关,Little Endian,因此LSB放在首位。
让我知道是否能回答您。
再见!
关于c++ - 将整数变量地址分配给字符指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20592524/