int a; while (a != 0) cout << a << endl;
之前对上面这上面的理解很肤浅,认为输出cout就是个输出标志,并且有时候忘记是"<<" 还是">>"。现在理解稍微深了些:
cin 、 cout 只是个对象而已
C++中输入、输出由标准库iostream库提供的。iostream库的基础是两个命名为istream和ostream的类型,分别表示输入流和输出流。cin是istream类型的对象,cout是ostream类型的对象。
<< 、 >> 是重定向符
上例程序中,cout << a。其中“<<”是重定向符,把a的值传给cout对象输出。同样:cin >> b。把输入对象cin的值传给b。这样理解也不至于忘记箭头向左还是向右。
cin 、 cout表达式返回值是左值
cout << a;返回值是左值cout(a是右值),这样cout << a << endl; 就等价于 ((cout << a) << endl);
因为前者返回值是cout,接着往右执行就是cout << endl;
同理:cin 返回值也是左值, cin >> a >> b; 其中cin >>a 把对象cin的值传给a, 返回cin ,又把cin的值传给b.