在 C++ 中声明变量如 &ref=a 和 ref=&a 的区别

Difference between declaring variables like &ref=a and ref=&a in C++

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

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

看到这个

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;
}

&ref=a : 是引用变量,意思是它是现有变量的别名。它可以像正常 variables.Memory 一样使用,管理留给编译器的引用

*ref=&a :它是指针变量,它保存另一个变量的地址。指针用于存储和管理动态分配的内存块的地址。

我的回答是肯定的,两者在保存变量方面应该有相同的目的,因为在大多数编译器中,引用可以被认为是常量指针本身。