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 @ 2024-05-30 00:03  lypbendlf  阅读(20)  评论(0编辑  收藏  举报