把一个'&'之后的类型

时间:2014-04-07 01:35:35

标签: c++ types parameters declaration ampersand

我对编程很新。我刚刚在大学课程中从C语言转到C ++,我遇到了一些我以前在C中看不到的东西。有时在类型之后,无论是在函数声明中还是在传递参数时,{{1}紧跟着这个类型。例如,我们在一个项目中使用一个名为Customer的结构,一些函数通过&。为什么类型之后的&符号,而不是前面?谢谢!

1 个答案:

答案 0 :(得分:1)

C ++中的引用只是允许更简洁的方式来执行以下代码:

int x = 16;
int* y = &x;
cout << *y;

可以将其改为

int x = 16;
int& y = x;
cout << y;

在定义函数时,引用允许函数更改参数的值,而不会导致函数的用户在所有内容之前放置&符号。 E.g。

void func( int& a )
{
    a = 5;
}

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

小心这一点,因为程序员使用这样的函数而不检查实现可能没有意识到函数正在改变参数的值,除非意图是明显的。通常最好只使用指针或return语句,而不是使用像这样的引用。

对于大多数情况,您会看到引用被用作制作别名的简便方法。