C++; 我正在努力学习C++的基础知识。我正在读的书使用了以下语法: func(int& x); func(int &x);

C++; 我正在努力学习C++的基础知识。我正在读的书使用了以下语法: func(int& x); func(int &x);,c++,function,parameter-passing,pass-by-reference,C++,Function,Parameter Passing,Pass By Reference,在互联网上,我主要看到以下语法: func(int& x); func(int &x); 两者的作用似乎完全相同。有什么区别吗?实际上没有区别。只是一种风格偏好。.我更喜欢int&x。这样,引用就成为类型的一部分,它是一个名为x的“int引用”,而不是“int,x的引用” 我发现将“int reference”看作离散类型会减少混淆,但对于编译器来说,这是一样的。请参见比亚恩·斯特劳斯特鲁普网站上的常见问题解答。这是指针,但他写的东西同样适用于引用: 这两种语言都是“正确的”

在互联网上,我主要看到以下语法:

func(int& x);
func(int &x);

两者的作用似乎完全相同。有什么区别吗?

实际上没有区别。只是一种风格偏好。.

我更喜欢
int&x
。这样,引用就成为类型的一部分,它是一个名为x的“int引用”,而不是“int,x的引用”

我发现将“int reference”看作离散类型会减少混淆,但对于编译器来说,这是一样的。

请参见比亚恩·斯特劳斯特鲁普网站上的常见问题解答。这是指针,但他写的东西同样适用于引用:

这两种语言都是“正确的”,即两者都是有效的C和C++,并且两者都是正确的。 意思完全相同。[…]选择

int*p
int*p不是关于对与错,而是关于风格和重点


人们有编码标准——有些人喜欢前者而不是后者。但是没有什么不同,你从未见过
func(int&x)?@DavidSchwartz我现在有了。:-)@当然可以,但是
func(int)呢      &      x) )?(好,好,现在)@Yakk代码没有空格。带有空格的版本。这不回答OP的问题,这只是提供您的意见/偏好。@CoryKramer我已经在考虑以“基于意见”的方式结束问题,或者找到一个好的副本。@πάνταῥεῖ 这个问题本身并不是基于观点的。他们问题的答案是“没有区别”。看起来确实有一些重复的,或者至少是非常密切相关的问题。它确实回答了这个问题,并给出了一些背景知识,说明了为什么一种方法(在我看来)更好。@ventsyv:符号没有成为类型的一部分。给定
int&a,b
都是
a
b
引用吗?虽然如果你点击链接,你会读到这篇文章,但也许你应该在这里加上一点误导,以为在类型旁边加上星号会使所有变量都指向指针。@DavidVereb:或者按照比亚恩的建议做:“每个声明声明一个名称可以最大限度地减少问题”,“只是一种风格偏好”-不仅如此,它还涉及强调。@zenith…这将是一种风格偏好。就编译器而言,它们是相同的。