请参考下面的示例:
int arr[10];
int *p = arr; // 1st valid choice
int (&r)[10] = arr; // 2nd valid choice
现在,当我们对arr
使用auto
时,它会选择第一个选项。
auto x = arr; // x is equivalent to *p
阵列使用choosing a pointer and not reference有什么原因吗?
发布于 2011-06-23 00:24:26
auto
产生值。它不会产生引用。记住这一点,那么指针就是对数组提供的值的简单转换。
发布于 2011-06-23 00:45:39
对于数组arr
,表达式arr
本身表示&arr[0]
。此规则来自C。因此,IMO,auto选择指针。
https://stackoverflow.com/questions/6443230
复制相似问题