ostream cout和char *

时间:2012-04-23 17:59:49

标签: c++ char ostream

我有一系列像这样的字符:

char arr[3]="hi";
cout << arr;// this will print out hi

运营商&lt;&lt;&lt;&lt;有一个重载版本,它带有一个ostream对象和char *。所以cout<<arr;首先将会拒绝聊天*。然后运算符&lt;&lt;()将打印出char指针指向的内容,直到找到空字符?

cin>>arr;的相同问题如何使用运算符&gt;&gt;将数组作为第二个操作数。

3 个答案:

答案 0 :(得分:1)

cout的工作方式完全相同。

数组arr衰变为指针类型,并且存在istream的重载版本,它将char*作为参数。因此,arr在腐朽后会被operator>>传递给char*

答案 1 :(得分:1)

您的ostreamistream确实有operator<<operator>>重载以获取char*,并且数组会衰减成指向第一个元素的指针。所以,是的,它就是你所说的。

答案 2 :(得分:0)

有关coutStandard output stream的详细信息,请参阅此处。在此页面中,请点击查看“ostream::operator<<”的链接 同样请参阅此处了解有关cinStandard input stream的详细信息。在此处,请点击查看“operator (>>)

的链接