# 【知識精講】你的第一個C++語言程序
## Part1
恭喜你剛剛完成了你的第一個 C++ 語言的程序,不知道你有沒有一點點小激動呢?
你剛剛用過`cout`來輸出了“Aloha Oe”。你有沒有想問一下`cout`是個什么東西呢?其實,我們通過`#include <iostream>`的語句引入了一個名為`iostream`(**i**nput **o**utput **stream**,輸入輸出流)的**頭文件** ,而`cout`則是一個在這個頭文件中被定義好的 **對象**,其中包含了許多有用的輸入輸出相關功能。
對于`cout`對象而言,輸出操作由**操作符**`<<`來表達,其作用是將緊隨其后的雙引號中的字符串輸出到標準輸出設備(即顯示器)上,以換行符`endl`結尾。這些名詞的具體含義,我們將在后續的章節中向大家詳細介紹——現在,大家只要知道我們可以用`cout<<`來向屏幕上輸出內容就可以了。
## Part2
讓我們來整體回顧一下剛才的代碼:
~~~
#include<iostream>
using std::cout;
using std::endl;
int main() {
cout << "Aloha Oe!" << endl;
return 0;
}
~~~
在之前的章節中,大家應該已經知道編譯器需要把不同的代碼模塊連接到一起,才能得到一個可執行的程序——從程序的結構中,我們就可以看出“連接”這個過程存在的意義:我們在主程序中調用了`iostream`對應的庫中定義好的`cout`對象,所以連接器在連接的時候,需要把我們寫的代碼跟相應的庫連接起來,才能得到完整的可運行程序。
下面的幾行`using`表示使用**命名空間**std中的指定內容(這里使用的是`cout`和`endl`)——同樣,現在大家只要知道,如果你想使用`iostream`中的某個對象,比如這里的`cout`的話,那么就必須要加上對應的語句,格式為`using std::XXX;`。關于命名空間的概念,我們將在以后的課程中向大家詳細介紹。
## Part3
現在,去掉了我們已知的代碼之后,剩下的代碼如下:
~~~
int main() {
return 0;
}
~~~
這部分代碼其實完成了一個名叫`main`的函數的實現,這個函數是 C++ 語言中規定的程序運行的入口——這一點跟 C 語言是一樣的。我們一系列的程序邏輯的擬寫,都需要在`main`這個函數的大括號所包圍的范圍內完成。也就是說,當我們的 C++ 語言程序被編譯、連接和運行時,一切有效的邏輯,將會從`main`函數大括號包圍范圍的第一行語句開始。
你現在還剩下的未解的問題,應該只剩下`int`和`return 0`了吧?
## Part4
在這里,`int`表示了我們預期的`main`函數的返回值類型——**整數**(**int** eger)。而`return 0;`就是在`main`函數的結束位置將一個整數 000 作為`main`函數的返回值交給操作系統的意思。
在編程語言中,函數的定義跟數學中的函數有著些許相似之處,但也有些不同——具體在 C++ 語言中,我們會實現一些自己的函數,形如:
~~~
[返回值類型] [函數名]([參數]) {
[函數內的語句]
return [返回值];
}
~~~
然后我們也可以在 C++ 語言中通過 `[函數名]([傳入參數值])`的形式調用我們的函數,讓函數內語句實現的邏輯被執行。
## Part5
我們之后開發 C++ 語言程序的過程其實也就是包含了各自邏輯意義的**子程序**的函數或者對象們,把它們調用來、調用去的過程(就像我們已經在 `main` 函數中調用了 `cout` 對象這樣)。只不過這些函數/對象中,有一些是外部的頭文件中已經定義好的,我們引入了頭文件就可以使用,比如`cout`是一個在`iostream`的頭文件中已經聲明好了,可以直接使用的對象;而另一些可能需要你自己去定義、實現之后,你才可以進一步去進行調用。
這些概念對于你來說,現在可能有些難懂——不過沒關系,后面我們還會給你很多的機會慢慢弄懂這些內容的。
- 教材介紹
- 《編程初學入門常識》
- 什么是程序語言
- 【知識精講】編程與編程語言
- 【選擇測試】編程語言分類
- 【知識精講】高級語言分類
- 【選擇測試】編譯與解釋
- 【選擇測試】程序員笑話-Java
- 熟悉鍵盤上用于編程的鍵位
- 【知識精講】認識你的鍵盤
- 【知識精講】中文和英文字符
- 【匹配測試】識別中英文符號
- 【選擇測試】中英文符號的影響
- 【伴隨編程】不要使用中文引號
- 【伴隨編程】不要使用中文分號
- 【伴隨編程】正確地輸入符號
- 【選擇測試】找出程序中的錯誤
- 初始工程師思維
- 【知識精講】二進制思想
- 【選擇測試】程序員笑話-湊整
- 【知識精講】閉合的邏輯
- 【選擇測試】程序員笑話-條件
- 程序員職業與生活
- 【知識精講】程序員的發展方向
- 【知識精講】程序員的裝備
- 【知識精講】程序員的健康
- 【選擇測試】做一名健康的程序員
- 《C++程序設計》
- 前言
- 【知識精講】編程與計算機科學
- 【知識精講】編程與軟件工程
- 【知識精講】如何學習編程
- 你好C++
- 【知識精講】你好,C++
- 【知識精講】C++程序是如何開發的
- 【知識精講】成為一名Power User
- 【伴隨編程】讓我們一起說你好
- 【知識精講】你的第一個C++語言程序
- 【伴隨命令】編譯、運行你的程序
- 【伴隨編程】將變量流式輸出
- 【選擇測試】變量的作用域
- 【知識精講】變量與數據類型
- 【匹配測試】C++語言的入門概念
- 【知識精講】在程序中學會換行
- 【選擇測試】正確地換行
- 簡單數學運算
- 【知識精講】重新認識基本運算
- 【選擇測試】運算符的理解
- 【伴隨編程】做一下簡單的運算
- 【伴隨編程】a 的 n 次方
- 【知識精講】數學函數
- 【伴隨編程】讓C++語言變成計算器
- 【伴隨編程】計算球的體積
- 【匹配測試】數學世界知多少
- 【知識精講】在程序中添加注釋
- 【選擇測試】正確地寫注釋
- 從伴隨輸入到變量地址
- 【伴隨編程】 一個數字復讀機器
- 【選擇測試】理解標準輸入輸出
- 【伴隨編程】一個加法計算器
- 【程序設計】A+B+C問題
- 【伴隨編程】簡單的I/O格式控制
- 【知識精講】地址與取地址符
- 【伴隨編程】看看我們的地址
- 習題一:面積與周長
- 【程序設計】矩形面積與周長
- 【程序設計】三角形面積與周長
- 【程序設計】圓形面積與周長
- 程序中的是與非
- 【知識精講】是非的表示與關系運算
- 【伴隨編程】驗一驗關系運算式
- 【選擇測試】關系運算式求值
- 【知識精講】如果的意義
- 【伴隨編程】分段函數求值
- 【知識精講】如果之后的如果
- 【伴隨編程】五則運算器
- 【選擇測試】分支的嵌套
- 【伴隨編程】問號表達式
- 【知識精講】是非之間的邏輯組合
- 【伴隨編程】判斷閏年
- 【程序設計】日期合法性
- 【知識精講】多路順序結構
- 【知識精講】在程序中學會縮進
- 【選擇測試】正確的縮進
- C++程序中的苦力
- 【知識精講】使用循環結構
- 【選擇測試】對比兩種循環
- 【伴隨編程】使用while循環
- 【填空測試】理解循環結構
- 【知識精講】自減和自增運算符
- 【伴隨編程】使用自增運算符
- 【知識精講】for循環
- 【選擇測試】for循環的使用
- 【程序設計】一大波好玩兒的程序
- 《代碼能力快速提升》
- 《基礎數據結構》
- 《搜索入門》
- 《動態規劃基礎》
- 《數論和基礎數學》
- 《圖和數基礎》