国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

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

2020-02-24 14:27:54
字體:
來源:轉載
供稿:網友

我們在學習C語言的時候,標準輸入和輸出方法是PROTF和SCANF,但是在C++中,我們卻經常使用CUT和CIN進行操作,今天武林技術頻道就這些問題帶大家來學習淺析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.

以上就是關于淺析C++中cout的運行機制,現在你了解了吧?歡迎你隨時來關注武林技術頻道(js.Vevb.com),最專業的知識盡在這里。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 梁平县| 宿松县| 伊通| 莱西市| 嫩江县| 丹阳市| 玛曲县| 海宁市| 鸡西市| 桐城市| 浦北县| 花垣县| 黄浦区| 沅陵县| 修武县| 云和县| 吴忠市| 会同县| 兰州市| 三明市| 徐闻县| 乌恰县| 宜阳县| 江津市| 武山县| 长乐市| 太仓市| 永清县| 米泉市| 宁波市| 青铜峡市| 湟中县| 九龙县| 卢氏县| 岢岚县| 定日县| 敖汉旗| 乡宁县| 香港 | 吴桥县| 南投市|