int cin。还在工作怎么样?

时间:2016-03-20 08:58:41

标签: c++ cin

#include<iostream>
using namespace std;
int main ()
{
    int cin;
    cin >> cin;
    cout << "cin" << cin;
    return 0;
}

这是该计划。我认为应该给出错误。但它编译并输出为cin0。即cin+junkvalue

P.S。我知道cin >> cin,这是位移操作。 但我的问题是为什么我们能在这里声明int cin

1 个答案:

答案 0 :(得分:3)

您可以在与某个现有变量不同的范围内声明任何变量名称。 cin不是关键字或保留名称,只是输入流的正式名称。实际上,如果您不在代码中使用using namespace std;,则可以执行std::cin >> cin;并从标准输入中读取整数值。 [应该添加即使使用using namespace std;,您仍然可以使用命名空间限定符,因此std::cin >> cin;可以使用&#34;使用&#34;以及&#34;没有&#34;那个陈述 - 我的意思是说一般来说使用using namespace ...是一个坏习惯,我更喜欢只在需要的地方输入命名空间]

显然,做这些事情通常是个坏主意。但它的定义很明确,而且#34;工作&#34;只要你知道自己在做什么,并且不需要同时进行这两项工作。