C语言不明白

C语言查看多字节变量中每单个字节数据的方法
代码: 

#include<stdio.h>

void main()

{

int a=0x21109225;
char* pAddress=(char*)&a;
printf("%x\n",*pAddress);
printf("%x\n",*(++pAddress));

}

  
我们知道在VC中int型占4个字节,而char型占1个字节,所以主函数中的语句"char* pAddress=(char*)&a;"将a的4个字节中的第一个字节地址赋给char* 型指针变量pAddress。这里pAddress用char*型而不是int*型的原因是,虽然两者都是指针,都占用4个字节,但对于所指向内容的读取方式是不同的;前者以单字节读取,而后者一次读取4个字节。

所以如果您的计算机是大端存储,那么输出结果是:

   
21

10

如果是小端存储,那么输出结果是:

25

92

#include <stdio.h>
main()
{
    /*
    VC中int型占4个字节,而char型占1个字节,所以语句"char* pAddress=(char*)&a;"
    将a的4个字节中的第一个字节地址赋给char* 型指针变量pAddress。
    这里pAddress用char*型而不是int*型的原因是,虽然两者都是指针,都占用4个字节,
    但对于所指向内容的读取方式是不同的;前者以单字节读取,而后者一次读取4个字节。

*/
    int a=0x21109225;
    char* pAddress=(char*)&a;
    printf("%x\n",*pAddress);
    printf("%x\n",*(++pAddress));

    getchar();
}

 

posted @ 2021-03-07 20:20  myrj  阅读(76)  评论(0编辑  收藏  举报