博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《程序员面试宝典》强制转换,内存地址
阅读量:5805 次
发布时间:2019-06-18

本文共 753 字,大约阅读时间需要 2 分钟。

1.无符号整形输出

#include
int main(){ unsigned int a=0xffffffff; printf("%u\n",a);}

不能用%d输出。

#include
void main(){ unsigned int a = 0xAAAAAAA7; unsigned char i = (unsigned char)a; char* b = (char*)&a; unsigned char* c = (unsigned char*)&a; //char 1个字节 unsigned char 1个字节 printf("%d %d\n",sizeof(char),sizeof(unsigned char)); printf("%d %d %d %d\n",sizeof(unsigned int),sizeof(unsigned char),sizeof(char *),sizeof(unsigned char *)); printf("% 8x, % 8x, % 3x,% 8x\n", a, i, *b, *c);}
输出: 1 14 1 4 4aaaaaaa7,       a7, ffffffa7,      a7

b或者c是指向a的内存,但是只是指向a的低字节内存。也就是0xA7。b是char*类型,所以把0xA7解释为负数,所以*b输出结果为0xffffffa7,等于-89。而c,为unsigned char*类型,*c的输出为167。

转载于:https://www.cnblogs.com/XDJjy/p/3895640.html

你可能感兴趣的文章
国内首例:飞步无人卡车携手中国邮政、德邦投入日常运营
查看>>
微软将停止对 IE 8、9和10的支持
查看>>
微服务架构会和分布式单体架构高度重合吗
查看>>
如何测试ASP.NET Core Web API
查看>>
《The Age of Surge》作者访谈
查看>>
测试人员的GitHub
查看>>
Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
查看>>
有关GitHub仓库分支的几个问题
查看>>
无服务器计算的黑暗面:程序移植没那么容易
查看>>
云原生的浪潮下,为什么运维人员适合学习Go语言?
查看>>
Webpack入门教程三十
查看>>
EAServer 6.1 .NET Client Support
查看>>
锐捷交换机密码恢复(1)
查看>>
Kali linux virtualbox rc=1908 错误解决办法
查看>>
Erlang学习总结之Erlang语法中的逗号(,)、分号(;),句号(.)的正确用法...
查看>>
linux软件包管理之三(源代码安装)
查看>>
数据库三范式是什么?
查看>>
[转载]设置Ubuntu自动连接无线,无须再输入密钥环和无线密码
查看>>
九叔Xen App测试报告
查看>>
Apache配置
查看>>