| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 997 人关注过本帖
标题:为什么输出a[0]=1010101,而a[1]=2,a[2]=2,a[3]=2,求解答,谢谢
只看楼主 加入收藏
HOUSAND
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2016-8-14
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
为什么输出a[0]=1010101,而a[1]=2,a[2]=2,a[3]=2,求解答,谢谢
#include <stdio.h>
void main()
{

    int i;
    int a[4];
    char* c;
   
    for(i=0;i<4;i++)
        a[i]=2;
   
    c=(char*)a;
    for(i=0;i<4;i++)
        c[i]=1;
    printf("%x\n",a[0]);
    printf("%x\n",a[1]);
    printf("%x\n",a[2]);   
    printf("%x\n",a[3]);
    printf("%x\n",c[0]);


}
搜索更多相关主题的帖子: include include 
2016-10-24 22:09
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:10 
对于小端法机器来说,a[0]=0x01010101,即00000001 00000001 000000001 000000001。英特尔的都是小端法。

未佩好剑,转身便已是江湖
2016-10-24 22:45
chain135cn
Rank: 2
等 级:论坛游民
帖 子:2
专家分:20
注 册:2016-10-20
收藏
得分:10 
一般情况下,*c是char类型的,占8位;a数组是int类型的,占32位。
你把c[0]~c[3]都弄到a[0]里面去了,就成这样了。如果你有c[4]~c[7]的话,a[1]也会变的。
2016-10-24 23:52
快速回复:为什么输出a[0]=1010101,而a[1]=2,a[2]=2,a[3]=2,求解答,谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014953 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved