【发布时间】:2016-05-27 10:31:31
【问题描述】:
我是 C 编程的一年级学生,所以我的技能/知识有限。我正在尝试在printf 上创建自己的实现,但是在检索和打印变量的地址时遇到了麻烦。使用printf,可以使用%p 输出变量的地址,我需要以某种方式复制%p。
存储变量地址时,数据类型为int*,我不知道如何将这个地址写入屏幕(stdout)。
例如:
int i = 123;
int *address = &i;
现在我将如何输出address(不是i 的值)?我尝试使用原始的printf 格式说明符进行测试。我尝试使用 %x, %s, %d, %lu...当我尝试输出 int*(整数指针)时,这一切都给了我一个错误。
谁能帮我输出地址?
【问题讨论】:
-
@Anders K。这将在 64 位机器上剪切 64 位地址的高 32 位。