首页 > 解决方案 > 在 C++ 中声明 &ref=a 和 ref=&a 等变量之间的区别

问题描述

我对遇到的两种类型有点困惑,比如如果 int a=0,“&ref=a”指的是什么,“ref=&a”指的是什么?

这些是否与保存变量地址的目的相同?

标签: c++pointersvariable-declaration

解决方案


看到这个

int a=10;
int &ref=a;
std::cout<<ref;

它将打印 10

int a=10;
int *ref=&a;
std::cout<<ref;

它将打印 a 的地址,如果你想要值,你应该这样输入*ref,即你应该取消引用它。

#include<iostream>
#include<fstream>

void fun(int &var)
{
    var=100;
}

int main()
{
    int a=10;
    fun(a);    //no need & here
    std::cout<<a;
    return 0;
}

看到这个

#include<iostream>
#include<fstream>

void fun(int *var)
{
    *var=100;
}

int main()
{
    int a=10;
    fun(&a);    //need & here
    std::cout<<a;
    return 0;
}

推荐阅读