首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

大小端方式的数组内存

2013-09-17 
大小端模式的数组内存char str[] ABchar pStr strpStr++print(%c,*pStr)代码分别在大小端模式

大小端模式的数组内存


char str[] = "AB";
char pStr = str;
pStr++;
print("%c",*pStr);

代码分别在大小端模式输出什么?我觉得都输出B(原谅我没有大端模式环境)。毕竟C语言是跨平台的。
我想知道数组分别在大小端模式中的内存分布式怎样的。
c语言 内存 大小端模式
[解决办法]
http://blog.csdn.net/ce123_zhouwei/article/details/6971544
看看这个
[解决办法]
冷汗哒哒

不管大端小端都是 B
不会是别的
别想太多了 


[解决办法]
做下科普吧:
1.什么是字节序
      字节序就讲的是占用多个字节的数据类型(int,long等)在内存中的存放顺序,比如一个int型,大小为109486163(为什么要用这个数举例?往下看就知道 了),用16进制的形式表示就是0x41424344,这个数在内存中是如何存放的呢,假设其址为0,这个int分配的地址也为0,那么,在地址0,1,2,3,上的值分别是多少?但愿这篇文章可以回答这个问题。
      字节序通常有小端、大端两种字节顺序。小端字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;也就是低地址存放最低有效字节(LSB)。大端字节序是高字节数据存放在低地址处,低字节数据存放在高地址处。也就是是指低地址存放最高有效字节(MSB)

通俗点讲:
“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址,即是小端字节序;大端存在起始地址,即是大端字节序。
[解决办法]
大小端与char毛关系啊

[解决办法]
引用:
Quote: 引用:

大小端与char毛关系啊

是没关系,用char是因为,网上看到了下面这段判断大小端的代码。

//如果字节序为big-endian,返回true;
//反之为   little-endian,返回false
bool IsBig_Endian()
{
    unsigned short str= 0x1234;
    if(*( (unsigned char*) &str) == 0x12)
       return TRUE;
   else
       return FALSE; 

}//IsBig_Endian()

这段首地址的char型的值会因为大小端的不同而不同。


char str[] = "AB";
char pStr = str;
pStr++;
print("%c",*pStr);


而这个这段首地址的char型的值不管大小端模式,值都是一样的吧。

两端代码中的内存字节数都是2字节。结果不一样。我猜想是数组与基本类型在大小端模式中内存分布不一样。

所以,数组在在大小端模式中内存分布是怎样的?



short int这种有大小端问题,因为他们都不是单字节的东东
0x1234在两种模式下会将0x12和0x34分别放在前面

热点排行