如何在C++中创建引用变量?为何输出十六进制地址而非预期值
问题解析:引用变量输出十六进制地址的原因及解决办法
你看到的十六进制数值是变量的内存地址,问题出在代码里的&meal:这里的&是取地址运算符,并非定义引用时的符号,它会返回meal(也就是food)在内存中的存储地址,所以输出了类似0x6ffe20的值。
要输出引用变量对应的内容,直接写meal即可——因为meal是food的引用(别名),二者指向同一块内存,输出meal就等价于输出food的值。
修正后的代码如下:
#include <iostream> using namespace std; int main(){ string food = "pizza"; string &meal = food; cout << food << endl; cout << meal << endl; // 移除前面的&运算符 cout << "The meal and food variable are same " << endl; }
运行后会得到预期输出:
pizza pizza The meal and food variable are same
内容的提问来源于stack exchange,提问作者rustum erine
相关产品推荐
相关产品推荐

