我們在學習C語言的時候,標準輸入和輸出方法是PROTF和SCANF,但是在C++中,我們卻經常使用CUT和CIN進行操作,今天武林技術頻道就這些問題帶大家來學習淺析C++中cout的運行機制。
?
int main()
{
??? int a, b;
??? cout<<"a="<<hello1()<<" b="<<hello2()<<endl;
??? return 0;}
int hello1()
{
??? cout<<"hello1"<<endl;
??? return 1;
}
int hello2()
{
??? cout<<"hello2"<<endl;
??? return 2;
}
最終輸出是:
hello2
hello1
a=1 b=2
?
一時讓人有點難以琢磨,網上給出了其靠譜的解釋:cout流的操作順序是:先從右往左讀入緩沖區,然后再從左往右輸出。所以它從右邊往左讀的時候,碰到了函數當然去執行函數先了,然后把函數返回值讀入緩沖區再然后。。。就是從左輸出了。
根據這個解釋,有實驗的幾個程序,能加深點理解
程序1:
輸為出:2 1。
解釋:先讀入*(a++),對于a++,是先讀入緩沖區,其自增,所以,此時緩沖區中的a是1,。再讀入*a,此時a已自增,所以讀入緩沖區的是2.
?
程序2:
輸出為:7 6 6
解釋:從右往左,先是(++i),即先自增,再讀入緩沖區,為6。再是(i++),即先讀入緩沖區,為6,再自增。最后是i,讀入緩沖區為7.
以上就是關于淺析C++中cout的運行機制,現在你了解了吧?歡迎你隨時來關注武林技術頻道(js.Vevb.com),最專業的知識盡在這里。
新聞熱點
疑難解答
圖片精選