[C++, CPP] 基本程式架構
程式架構(Program Architecture)
- 語法單元(token)
- 獨立不可分割的元素
-
- int
- main
- (
- )
- cout
- return
- 語法單元是編譯器剖析(Parsing)時的基本單位,通常可以空格、Tab、換行格開
-
- 有些Token不可用空格格開
-
#include<iostream>
#include<iostream> ,有#include、<、iostream、>等4個Token
<iostream>中間不可以有任何間格。
-
- Token是由編譯器決定
- 大部份編譯器會把<iostream>當作3個Token,而有些會當作1個Token,這和編譯器的實作有關
- 程式設計師只要注意不要在<iostream>中間插入分隔字元即可
- 獨立不可分割的元素
- 註解:說明文字,不會被執行
- //:單行註解
- /* */:多行註解
- 前置處理指令:
- 載入指定的標頭檔
- 名稱空間指令:告訴編譯器本程式檔中使用的cout物件是屬於std名稱空間。
- 範例的寫法是一個物件一個物件指定其名稱空間
- 也可將2行名稱空間指令寫成using namespace std;表示使用std名稱空間內的全部物件。
- 也可以不寫名稱空間指令,每次使用物件時注明名稱空間
-
std::cout << "Hello " << std::endl << "C++";
- 函式(function):函式是被設計有特定功能的程式區塊。
- 第一行的main是函式名稱,main函式是起始函式,即程式會由main函式開始執行
- 一個程式只能有一個main函式
- 敘述(Statstrongent):
- 主要的程式碼稱作敘述,像範例中有3行敘述
- 只有以分號;結尾的程式碼才叫敘述
- 敘述區塊(Statstrongent Block):
- 被大括號框住的程式碼通常稱為區塊或敘述區塊
- 回傳值:
- 關鍵字return後面接的值
- 回傳值會傳回給呼叫函式的地方
- main( )函式是由作業系統所呼叫,所以程式最後傳回0告訴作業系統已成功執行完程式。
- 當函式回傳值給呼叫者(Calling Function)後,便不再繼續執行,即使後面還有敘述,都不會被執行到。
- 字元字串(Character String):
- 以雙引號"括住的字
- 又叫做訊息(message)或字串字面(String Literal)或字串字面值
- Hello World!!!"
- 左值(lvalue):
- 放在運算子左邊的變數稱為左值
- 如果放在等號左邊,會牽涉到記憶體的變動
- 右值(rvalue):
- 放在運算子右邊的值
- <<:串流插入運算子(StreamInsertion Operator),將右值插入到輸出串流中。
- std::cout:串流輸出物件,cout物件是ostream類別的實體。
- 在螢幕上顯示Hello
cout << "Hello";
- 在螢幕上顯示Hello
- std::cin:串流輸入物件,cin物件是istream類別的實體。
- 由鍵盤輸入數值,並存到整數變數int中
int num1=0; cin >> num1;
- 由鍵盤輸入數值,並存到整數變數int中
- std::endl:串流操作子(Stream Manipulator),換行後將輸出緩衝區(Output Buffer)的資料輸出。
- 在螢幕上顯示Hello,並換行
cout << "Hello" << endl;
- 在螢幕上顯示Hello,並換行
- std::setw( ):串流操作子(Stream Manipulator),控制下一個輸出的欄位寬度。
- 在螢幕上顯示寬度為10個字元的Hello
cout << '[' <<setw(10) << "Hello" << ']';
- 因為H、e、l、l、o有5個字元,所以前面會再插入5個空白,所以輸出[ Hello]
- 在螢幕上顯示寬度為10個字元的Hello
- std::cout:串流輸出物件,cout物件是ostream類別的實體。
串流操作子說明
- 可以想像cout代表螢幕,字元字串"Hello"代表資料,<<代表資料流動的方向
- 看起來就變: 螢幕 ⇐ 資料,即把資料送給螢幕
- 資料是可以串接的: 螢幕 ⇐ 資料1 + endl + 資料2