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

字符变量赋值有关问题

2012-03-22 
字符变量赋值问题一程序如下:main(){union{charcchari[4]}zz.i[0]0x39z.i[1]0x36printf( %c\n ,z

字符变量赋值问题
一程序如下:
main()
{
union   {char   c;char   i[4];}z;
z.i[0]=0x39;z.i[1]=0x36;
printf( "%c\n ",z.c);
}
程序中z.i[0]=0x39;z.i[1]=0x36;挺让人困惑,z.i[0]实际相当于字符变量,字符变量可以接受整型数据或单个字符,这都没问题.可它能不能接受16进制的数据呢?如果能,该数据在此变量中又以什么样的形式保存呢?如果以整型格式或字符型格式输出该数据,又会有什么样的结果?

[解决办法]
union {char c;char i[4];}z;//union是一种节省空间的类,存放方式从低地址到高地址。

z.i[0]=0x39;z.i[1]=0x36;
printf( "%c\n ",z.c);

//======
char 型数据 能接受16进制的数据.
计算机里面存放的实质上全部是数据,不管字符串还是int型

如果以整型格式或字符型格式输出该数据,又会有什么样的结果?
//========
整型则为:57
字符型则为: '9 '

热点排行