我有一系列像这样的字符:
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;将数组作为第二个操作数。
答案 0 :(得分:1)
与cout
的工作方式完全相同。
数组arr
衰变为指针类型,并且存在istream
的重载版本,它将char*
作为参数。因此,arr
在腐朽后会被operator>>
传递给char*
。
答案 1 :(得分:1)
您的ostream
和istream
确实有operator<<
和operator>>
重载以获取char*
,并且数组会衰减成指向第一个元素的指针。所以,是的,它就是你所说的。
答案 2 :(得分:0)
有关cout
:Standard output stream的详细信息,请参阅此处。在此页面中,请点击查看“ostream::operator<<”的链接
同样请参阅此处了解有关cin
:Standard input stream的详细信息。在此处,请点击查看“operator (>>)”