首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >打印指针地址和符号地址的区别

打印指针地址和符号地址的区别
EN

Stack Overflow用户
提问于 2014-09-12 09:01:42
回答 2查看 419关注 0票数 1
代码语言:javascript
运行
复制
int firstInt =10;
int *pointerFirstInt = &firstInt;


printf("The address of firstInt is: %u", &firstInt);
printf("\n");
printf("The address of firstInt is: %p", pointerFirstInt);
printf("\n");

上面的代码返回以下内容:

代码语言:javascript
运行
复制
The address of firstInt is: 1606416332
The address of firstInt is: 0x7fff5fbff7cc

我知道0x7fff5fbff7cc是十六进制的,但是当我试图将这个数字转换为十进制时,它并不等于1606416332。为什么会这样呢?两个不应该都返回相同的内存地址吗?

EN

Stack Overflow用户

回答已采纳

发布于 2014-09-12 09:07:59

从你的十六进制地址-

代码语言:javascript
运行
复制
The address of firstInt is: 0x7fff5fbff7cc

地址的大小是6个字节长。但是unsignedint的大小是4个字节。当您试图使用%u打印地址时,它将导致未定义的行为。

因此,始终使用%p打印地址。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25804498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档