关于c ++:type后放一个&

putting a '&' after the type

我对编程相当陌生。我刚从C课程中转到C,在我的大学课程中,我遇到了一些我以前在C中没有见过的东西。有时候,在函数声明或参数传递之后,EDCOX1(0)立即跟着类型。例如,我们在一个项目中使用一个名为customer的结构,其中一些函数通过Customer&。为什么和号后面是同一类型,而不是前面?谢谢!


C++中的引用只允许更干净的方式执行下面的代码:

1
2
3
int x = 16;
int* y = &x;
cout << *y;

可以改为

1
2
3
int x = 16;
int& y = x;
cout << y;

定义函数时,引用允许函数更改参数值,而不会导致函数的用户在所有内容之前放置一个和号。例如。

1
2
3
4
5
6
7
8
9
10
11
void func( int& a )
{
    a = 5;
}

void main()
{
    int A = 10;
    func( A );
    cout << A; // Will output '5'
}

注意这一点,因为程序员在不检查实现的情况下使用这样的函数可能不会意识到函数正在改变参数的值,除非其意图是显而易见的。通常只使用指针或return语句,而不使用这样的引用更好。

在大多数情况下,您将看到引用被用作创建别名的简单方法。