qq1242009750 发表于 2016-6-11 14:24:07

打印地址的求助

printf("The a addr is %p\n",pa);
    printf("The i adde is %p\n",po);

    printf("The a addr is %d\n",&pa);
    printf("The i adde is %d\n",&po);

请问这两个打印出来的地址为什么会一样呢?   求解释!!!


谢谢您的帮助 么么达

jiexian 发表于 2016-6-11 20:53:26

%p是以十六进制输出变量地址
%d是以十进制输出变量地址
你把十进制转换成十六进制或者把十进制转换成十六进制,它们就一样了
加油!

qq1242009750 发表于 2016-6-11 21:59:26

file:///C:/Users/ASUS/Desktop/PGF8W@L6RY~1_CM~J@@ELUS.png

qq1242009750 发表于 2016-6-11 22:01:59

jiexian 发表于 2016-6-11 20:53
%p是以十六进制输出变量地址
%d是以十进制输出变量地址
你把十进制转换成十六进制或者把十进制转换成十六 ...

我一开始也是这样想的可是 我把十进制数转换到十六进制时他们是不一样的

qq1242009750 发表于 2016-6-11 22:02:30

qq1242009750 发表于 2016-6-11 22:01
我一开始也是这样想的可是 我把十进制数转换到十六进制时他们是不一样的

这个想到我脑子都要爆了。。。

jiexian 发表于 2016-6-12 02:08:06

#include <stdio.h>

int main()
{
    int a = 1;
    int o = 3;

    int * pa = &a;
    int * po = &o;

    printf("The a addr %d\n", &a);      //输出整型变量a的地址(十进制)
    printf("The o adde %d\n", &o);

    printf("The pa addr is %p\n", pa);      //输出指针变量pa的内容(十六进制),即变量a的地址
    printf("The po adde is %p\n", po);

    printf("The pa addr is %d\n", &pa);   //输出指针变量pa的地址(十进制)
    printf("The po adde is %d\n", &po);

    return 0;
}

zhenhailuolu 发表于 2016-6-12 04:14:48

jiexian 发表于 2016-6-12 02:08
#include

int main()


画了个内存图 ,大概是这个样子的吧

屁哥 发表于 2016-6-12 07:56:54

今天有么问个问题
麻烦师兄帮忙看看 悬赏问题 里有发布 有图片 这个 Vbox 增强工具箱安装失败问题
Stopping VirtualBox Additions这个鬼
3Q

qq1242009750 发表于 2016-6-12 11:13:55

有点明白了,谢谢各位的帮助{:9_237:}
页: [1]
查看完整版本: 打印地址的求助