第1講
第一部分
開始學習C++
內容安排
- 註釋
- #include 指令
- 主函數
- 花括號
- 使用標準庫輸出
- 返回語句
Hello, world! 程序
// a small C++ program
#include <iostream>
int main()
{
std::cout << "Hello, world!" << std::endl; //此語句做本程序的實際工作
return 0;
}
(實驗課上要求學生上機運行)
1 註釋 comments
Hello, world! 程序第一行:
// a small C++ program
• 字符 // 表示一段註釋的開始
• 註釋延伸至該行結束
• 用途:爲閱讀該程序的人解釋程序
2 #include 指令
• 核心語言(core lunguage)
可用於所有C++程序
• 標準庫(standard library)
C++中許多基本工具,如I/O (輸入、輸出) ,不屬於核心語言
• 使用標準庫時,必須明確指定要使用的部分
#include指令出現在程序開頭
本程序所使用的標準庫是 input-output,即:
#include <iostream>
• iostream: i-input, o-output, stream-,(即流)
• iostream—支持一連串的符號輸入、輸出
不支持隨機存儲、圖形輸入、輸出
• C++ library standard header標準頭文件:尖括號 angle brackets (< >)
3 主函數 main function
int main (parameters)
依次的含義:interger整數 ;函數;參數。
4 花括號curly braces
int main()
{ // left brace
// the statements go here
} // right brace
5 使用標準庫輸出
Using the standard library for output
以下語句執行程序的實際工作:
std::cout << "Hello, world!" << std::endl;
output operator(輸出運算符): <<
l cout & endl 是名稱爲std的namespace(名字空間)的一部分。
l std::cout 標準輸出流,所有C++實現普通輸出的工具
6 返回語句
The return statement
返回語句(return),如
return 0;
終止函數執行,返回一個值給調用其的程序;返回值在return & semicolon分號 (本例中爲0)
7 A slightly deeper look
l 本程序使用兩個 C++中常見概念: expressions(表達式) & scope(作用域).
l expression包括 operators(運算符) & operands(操作數)(見後頁)
l 每個操作數有一個類型,類型通常有名稱,如
ü core language定義int爲類型名稱,此類型代表整數
ü library(庫)定義std::ostream作爲提供流輸出的類型
l 本程序中,std::cout類型是std::iostream
l 名字的作用域scope是程序的一部分
名字只有在這部分纔有意義
Std:cout “hello,world!” std:endl爲操作數
<< << 爲輸出運算符
Cout 爲標準輸出流,類型爲std::ostream
Endl 爲控制器mainpulator 結束當前輸出行
A slightly deeper look (continue…)
l Namespace(名子空間)相關名稱的集合
l 名稱std::cout是一個qualified name(限定名稱), 它使用 :: operator (scope operator 作用域運算符).
l std::cout 表示:
在(名字空間)作用域std中的名稱cout
l Curly braces(花括號) 另一種scop(作用域).
8 小節Details
我門學習了C++的基本概念:
註釋、標準頭文件、作用域、表達式、
語句、字符串直接量、輸出。
1)程序結構: free form自由風格
ü C++程序通常具有free form自由風格
ü 只在防止相鄰符號混在一起時,才必須使用空白符
ü 新行(即系統環境從程序一行轉換至下行)也是一種空白形式
ü 空白符space:出現位置影響(提高/降低)程序可讀性
程序結構 (continue…)
不具有自由風格的實體:
1. 字符串直接量:用雙引號括住的字符,不可跨行
2. #include 名稱:必出現在單獨的一行(註釋除外)
3. //註釋://後面可跟任何東西;本行結束
NOTE: 以 /* 開始、 */ 結束的註釋有自有風格;且可跨越多行。
2) Types 類型
l Types 定義數據結構及對其的操作
l C++有兩種types:
ü 核心語言提供的內建類型,如int
ü 定義在覈心語言外的類型,如std::cout
3) Namespaces 名字空間
l 把相關名稱聚集在一起的技術
l 在名爲std的Namespace中定義來自標準庫的名稱
4) string literals
字符串直接量
ü 雙引號開始&結束
ü 所有字符串直接量在程序的同一 行中
ü 特殊含義:/n 換行符;
// 普通字符“/”
5) 定義 & 頭文件
Definitions and headers
ü standard library標準庫:頭文件中定義其名稱
ü 名稱必須在使用前定義
ü #include name:程序通過此指令訪問
6) 主函數 main
• 所有C++程序必須且只能一個主函數main
C++程序ç若干文件ç若干函數è必須&只有一個主函數main
• 系統通過調用main來運行程序
執行程序時,系統先找到唯一的主函數main,並從main開始執行
• 其他函數通過main或被main 調用的函數進行調用。
• 函數的調用可以嵌套--
• 通常,函數必包含至少一條return語句(在函數尾)
• main特殊,可沒有返回語句:
complier假設返回0
• main返回一個int類型的值:
main返回0:成功;非0:失敗
7) 花括號和分號
Braces and semicolons
• 一對匹配的花括號之間的語句構成一個作用域scope
• 由分號結尾的表達式是一條語句
8) 輸出 Output
• std::cout << e進行運算時將e的值寫到標輸出流中
• 同時產生 ostream類型的std::cout 爲結果值,以便進行鏈式輸出操作
•