我正在使用C++來理解指針如何工作。我有一段使用數組的代碼,我只是用它來理解等價物如何與指針一起工作。爲什麼cout打印字符數組與其他數組不同?
int main() {
int arr[10] = {1,2,3};
char arr2[10] = {'c','i','a','o','\0'};
cout << arr << endl;
cout << arr2 << endl;
}
然而,當我運行此,arr
輸出整數(如預期)的陣列的第一個元素的地址,但arr2
不輸出字符的數組的第一個元件的地址;它實際上打印「ciao」。
什麼是我失蹤或我還沒有學到這個?
根據[this](http://www.cplusplus.com/reference/ostream/ostream/operator%3C%3C/),它只會被void *重載。這是否意味着它能夠確定指針是否指向字符,如果是,它會查找終端字符並打印字符串? (仍然有點難倒) – rmp251 2013-10-02 02:17:29
@ rmp251:錯過[這些](http://www.cplusplus.com/reference/ostream/ostream/operator-free/)? – 2014-12-13 22:54:08