C++ 打印变量地址

1.介绍

复制代码
// 指针类型参数
void funB(map<uint32_t,string>* mp){
    (*mp)[5]="a";// 先解引用指针,然后再进行索引操作。[]优先级更高,所以*时要加括号
    cout<<"funB: "<<static_cast<void *>(mp)<<"\n";// 转换成void *类型打印指针地址
}
// 引用参数
void funA(map<uint32_t,string>& mp){
    funB(&mp);
    cout<<"funA: "<<&mp<<"\n";
}

int main() { 
    map<uint32_t,string> mp;
    cout<<&mp<<"\n";
    funA(mp);
    funB(&mp);
    cout<<mp.size();
    // funB(nullptr); // 访问空指针,会导致coredump
    cout<<endl;
    return 0;
}
复制代码

运行结果:

0x7fffba1a5a30
funB: 0x7fffba1a5a30
funA: 0x7fffba1a5a30
funB: 0x7fffba1a5a30
1

都是同一个地址,同一个变量。 

 

posted @   lypbendlf  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2020-05-30 二分搜索常用【转载】
2019-05-30 Py中的类型注解【转载】
2019-05-30 Py中pprint模块【转载】
2019-05-30 Py中的heapq模块【转载】
点击右上角即可分享
微信分享提示