在C ++中声明像&ref = a和ref =&a之类的变量之间的差异

问题描述 投票:0回答:2

我对遇到的两种类型的我有点困惑,就像int a = 0一样,“&ref = a”指的是什么,这东西指的“ ref =&a”是什么?

这些具有保留变量地址的相同目的吗?

c++ pointers variable-declaration
2个回答
0
投票

查看此

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

0
投票

&ref=a:它是参考变量,表示它是现有变量的另一个名称。它可以像普通变量一样使用。留给编译器的引用的内存管理

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

我的答案是肯定的,两者在保存变量时都应达到相同的目的,因为在大多数编译器中,引用本身可以被视为常量指针。

© www.soinside.com 2019 - 2024. All rights reserved.