编译器使用参数和不使用参数做什么? 我有一个关于C++编译器的重要问题。下面的代码输出 1 2 3

编译器使用参数和不使用参数做什么? 我有一个关于C++编译器的重要问题。下面的代码输出 1 2 3,c++,initialization,C++,Initialization,我不知道为什么。用空参数声明它与没有括号有什么区别 #include <iostream> using namespace std; int main() { int x; cout << x << endl; int y(); cout << y << endl; int z(2); cout << z << endl; return 0; }

我不知道为什么。用空参数声明它与没有括号有什么区别

#include <iostream>
using namespace std;

int main()
{
    int x;
    cout << x << endl;

    int y();
    cout << y << endl;

    int z(2);
    cout << z << endl;

    return 0;
}
#包括
使用名称空间std;
int main()
{
int x;

cout第一个,
x
的值是不确定的,然后
cout这是未定义的行为。
int y();
是一个正向函数声明。此代码与您认为的不一样。相关
int y()
不是最麻烦的解析示例。您链接到的页面上没有提到它;其中的示例包括尝试使用最终被解析为类型的参数调用函数。
int y();