关于缓冲区的数据怎么输出到控制台的问题

#include<iostream>
using namespace std;

int main()
{
    cout << "Hello World";
    system("pause");
    return 0;
}

请问为什么cout能将Hello World输出在控制台上,难道它通过某种方式刷新了缓冲区?这种方式又是什么呢?请详细地说一下,谢谢。

个人理解:
1、“Hello World”在内存静态常量中
2、cout、cin和输出到屏幕,输出到文件,输出到网络、输出到串口是一样的,都是提供给开发者的io接口。
3、可以这些io接口理解成管道,只要你把数据放到管道里,数据就会直接流到管道的另一头(控制台、屏幕、串口、网络、磁盘。。。)