2016-09-15 111 views
-2

即使字符串名稱的字符串表示的第一個元素的地址,當我執行此:空調風格字符串

char str[]="dog"; 
cout<<str<<endl; 

怎麼會整個字符串被打印?

+0

爲什麼一個不允許另一個?您將字符串的開頭傳遞給'cout',並將其實現爲從該點讀取字符串。那裏有什麼神祕感?如果我只給你我街道開始的位置,你怎麼能夠沿着整條街走下去? – kaylum

+3

我投票結束這個問題作爲題外話,因爲它代表沒有閱讀介紹性教科書。 – Joshua

+1

我認爲這是一個有效的問題,正如Lee Daniel Crocker所回答的那樣,這不是一件容易的事。 – 2016-09-15 01:51:29

回答

4

在C++中,「< <」運算符是「智能」。它知道左邊和右邊的東西的類型,如果右邊的東西是一個字符指針,而左邊的東西是輸出流,那麼它會打印字符串而不是指針的值。在C中,你必須告訴printf()哪一個要處理「%p」或「%s」,但「< <」爲你做出了這個選擇。

谷歌「C++操作符重載」