相关疑难解决方法(0)

为什么没有从指针到引用的隐式转换?

#include <iostream>
using namespace std;

int main() {
    int x = 5;
    int* y = &x;
    int& z = y;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

对于此代码,编译器给出以下错误int& z = y;

./example.cpp: In function 'int main()':

./example.cpp:7:11: error: invalid conversion from 'int*' to 'int' [-fpermissive]

    7 |  int& z = y;

      |           ^

      |           |

      |           int*

./example.cpp:7:11: error: cannot bind rvalue '(int)y' to 'int&'
Run Code Online (Sandbox Code Playgroud)

为什么?我知道为什么会出错,而且我知道如何解决它,我很好奇为什么编译器无法隐式执行转换,对我而言,我的意图似乎微不足道,是使指针和引用引用相同的内存位置。我想念什么极端情况吗?

c++ c++03

1
推荐指数
1
解决办法
130
查看次数

标签 统计

c++ ×1

c++03 ×1