执行说明

时间:2019-02-15 17:13:57

标签: c++

当我们将指针分配给变量时,我们倾向于使用'&'运算符,如下所示:     int a = 10; int *aa = &a;

如果不使用它将给出错误。但是我遇到了这段代码,其中将指针分配给数组arr,但未使用'&'

    int arr[10];
    int *a = &arr;

并在使用它时显示错误: 初始化时无法将'int()[10]'转换为'int '。

1 个答案:

答案 0 :(得分:1)

共享的链接@πάνταῥεῖ会告诉您,C样式数组会衰减为指向数组中第一个元素的指针,因此将此类数组发送给 any 函数时,它需要伴随着数组的大小,否则该函数将不再具有其大小(除非通过其他方式提供)。流操作符operator<<operator>>只是带有一个参数的函数,所以

std::cin >> arr;

将尝试查找带有签名的函数:

std::istream& operator>>(std::istream&, int*);