求教个神奇的 C++ 打印问题

6次阅读

共计 354 个字符,预计需要花费 1 分钟才能阅读完成。

代码

#include 
#include 
#include 
#include 

using GroupId = std::uint64_t;
using ReducedGroupId = GroupId;

struct Memo {std::optional GetReduceGroupId(const GroupId& group_id) {
        // omit
        return std::make_optional(group_id);
    }
};

int main(int argc, char* argv[]) {std::vector tmp;

    Memo memo;
    GroupId group_id = 1;
    const ReducedGroupId& reduced_group_id = memo.GetReduceGroupId(group_id).value();
    std::cout <<"3.1.->|" << reduced_group_id << ":" << &reduced_group_id << std::endl;

    tmp.push_back(4);
    std::cout <<"3.2.->|" << reduced_group_id << ":" << &reduced_group_id << std::endl;

    tmp.push_back(5);
    std::cout <<"3.3.->|" << reduced_group_id << ":" << &reduced_group_id << std::endl;
    return 0;
}

结果

3.1.->|1:0x7ffe4fcd3530
3.2.->|4:0x7ffe4fcd3530
3.3.->|5:0x7ffe4fcd3530

问题

  • 3.1, 3.2, 3.3 为啥打印结果不一样?
正文完
 0