%p是否将变量的地址作为指针打印,还是打印出指向的内容?

 Wi俏娃寒躯 发布于 2023-02-13 15:15

我现在已经阅读了至少十几篇关于%p的文章,我仍然没有得到明确的答案.我意识到网站上有多个帖子,我读了很多帖子.我甚至读过这篇文章,但它没有充分解释

说我有:

int x = 10;
void *p = &x;

下面的语句是否打印出'p'的地址或'x'的地址?

printf( "Here: %p\n" , p );

我试图获得x到p的地址.


对于某些上下文,我正在迭代堆栈,寻找指向我创建的链表的指针:

void foo(){

    register void* base asm("ebp");
    void* iter = base;

    void* mBase = MAIN_BASE; //global defined as "register void* base asm("ebp")" in main function

    void* start = &head;
    void* fin = &tail + sizeof( tail );

    while( iter != mBase ){

        if( iter >= start && iter <= fin )
            fprintf( stdout, ">>>>%p\n", iter );

        printf("iter: %p\n", iter );
        iter = (void*)( (char*)iter + 1 );
    }
}

mcleod_ideaf.. 9

它打印变量p 的内容,恰好是x的地址,因此它打印x的地址.它使用特定体系结构的地址格式显示它.格式可能因架构而异:存储在远段数据中的变量可以使用生成MS DOS实模式可执行文件的C编译器以完全不同的格式打印,例如025A:0008类似的东西.

1 个回答
  • 它打印变量p 的内容,恰好是x的地址,因此它打印x的地址.它使用特定体系结构的地址格式显示它.格式可能因架构而异:存储在远段数据中的变量可以使用生成MS DOS实模式可执行文件的C编译器以完全不同的格式打印,例如025A:0008类似的东西.

    2023-02-13 15:19 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有