C++中如何理解cout endl

转载自:http://www.sjyhome.com/c++-cout-endl;.html

我们在最初学习C++语言时就接触到"cout<

首先,endl是一个操作符(Manipulators),但我们必须知道endl是一个什么类型的变量。endl是跟在”<<“运算符后面,故endl应该是一个参数。其实endl是一个函数名,它是一个"<<"运算符重载函数中的参数,参数类型为函数指针。下面我们看下内部函数实现。

ostream& ostream::operator << ( ostream& (*op) (ostream&))
{
// call the function passed as parameter with this stream   as the argument
return (*op) (*this);
}

std::ostream& std::endl (std::ostream& strm)
{
    // write newline
    strm.put('\n');
    // flush the output buffer
    strm.flush();
    // return strm to allow chaining
    return strm;
}

可以看出,运算符重载函数中的函数参数为一个函数指针,其指向一个输入输出均为ostream类引用的函数。而endl正是这样一个函数。所以我们在运行"cout<

这样我们知道在标准库中endl是作为一个函数实现的,显然我们也可以直接调用这一函数。我们看下面的测试程序:

#include
using namespace std;

int main()
{
    cout< 
  

其输出为两个空行。”cout<

你可能感兴趣的:(C++,C++)