#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
?
答案 0 :(得分:3)
您可以在与某个现有变量不同的范围内声明任何变量名称。 cin
不是关键字或保留名称,只是输入流的正式名称。实际上,如果您不在代码中使用using namespace std;
,则可以执行std::cin >> cin;
并从标准输入中读取整数值。 [应该添加即使使用using namespace std;
,您仍然可以使用命名空间限定符,因此std::cin >> cin;
可以使用&#34;使用&#34;以及&#34;没有&#34;那个陈述 - 我的意思是说一般来说使用using namespace ...
是一个坏习惯,我更喜欢只在需要的地方输入命名空间]
显然,做这些事情通常是个坏主意。但它的定义很明确,而且#34;工作&#34;只要你知道自己在做什么,并且不需要同时进行这两项工作。