程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 淺析C++中cout的運轉機制

淺析C++中cout的運轉機制

編輯:關於C++

淺析C++中cout的運轉機制。本站提示廣大學習愛好者:(淺析C++中cout的運轉機制)文章只能為提供參考,不一定能成為您想要的結果。以下是淺析C++中cout的運轉機制正文



#include <iostream>
using namespace std;
int hello1();
int hello2();

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:

#include <iostream>
using namespace std;
int main()
{
    int b[2]={1,2};
    int *a=b;
    cout<<*a<<" "<<*(a++)<<endl;
    return 0;
}

輸為出:2 1。
說明:先讀入*(a++),關於a++,是先讀入緩沖區,其自增,所以,此時緩沖區中的a是1,。再讀入*a,此時a已自增,所以讀入緩沖區的是2.

法式2:

#include <iostream>
using namespace std;
int main()
{
    int i=5;
    cout<<i<<" "<<(i++)<<" "<<(++i)<<endl;
    return 0;
}

輸入為:7 6 6
說明:從右往左,先是(++i),即先自增,再讀入緩沖區,為6。再是(i++),即先讀入緩沖區,為6,再自增。最初是i,讀入緩沖區為7.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved