編譯的目的: 讓電腦能夠直接執行,有
//排版人幫我畫張圖相信您看的懂
編譯器是將程式碼轉成機器能夠執行的機器語言
#include<bits/stdc++.h>
引入函式庫
bits/stdc++.h
又被稱為萬用標頭檔,包含了幾乎所有你會用到的標頭檔
功能 | 名稱 |
---|---|
輸入輸出 | iostream |
數學 | cmath |
時間 | ctime |
隨機 | random |
還有 | 更多.. |
using namespace std;
使用命名空間(namespace)
為了標示類型、函數、變數的範圍,避免同名的類型、函數、變數相互衝突,導致程式出錯。
std
是大家會經常使用的namespace,裡面除了常見的輸入輸出以外,還有些資料類型可以使用,例如string
、vector
等等。
假設今天有另一個函式cin
和std
中的cin
相互衝突,那就應該使用std::cin
即可避免衝突的情況,std::cin
代表使用的是std
當中的cin
。
int main(){}
在大括號{}
裡,就是這個程式開始時會運行的地方
cout<<"Hello 暑訓!\n";
\n
\n
是換行的特殊符號
除此之外還有\t
、\'
、\"
、\\
自己寫一遍吧
一段記憶體位置使我們能夠儲存特定資料並在之後進行存取
暫存資料
可以把變數想像成一個紙箱,裡面裝資訊
//幫我畫個示意圖
變數的種類,依照剛才的比喻,可以想成是箱子的大小和裝法
//幫我畫張示意圖
分類的目的是方便電腦進行記憶體的分配和進行不同的運算方式
名稱 | 用途 | 記憶體大小 |
---|---|---|
int | 整數~ | 4bytes |
unsigned | 非負整數~ | 4bytes |
long long | 更大的整數~ | 8bytes |
unsigned long long | 更大的非負整數~ | 8bytes |
float | 浮點數 (可以有小數點的數字) | 4bytes |
double | 更精確浮點數 (可以有小數點的數字) | 8bytes |
long double | 更更精確浮點數 (可以有小數點的數字) | 16bytes |
bool | 布林值(只有true 或false 兩種情況) |
1byte |
char | 字元 | 1byte |
string | 字串 | 可變 |
其實還有更多種,但這些是常用的
資料型態 變數名稱1;
還可以這樣
資料型態 變數名稱, 另一個變數名稱, 另另一個變數名稱;
一般來說會用有意義的變數名稱,例如我想存一個人的名字,那我的變數名稱會叫做name
。
變數名稱有限制
_
、$
因為保留字有特殊意涵,所以不可作為變數名稱,以免出錯,
常見的保留字可能是資料型態
或是其他具有特殊意涵的字,
以下是常見的保留字清單,這東西不要背,重點在類別的部分
類別 | 保留字 |
---|---|
資料型態 | boot int long short signed unsigned signed char char8_t char16_t char32_t |
數值 | true false nullptr |
宣告用 | auto new static const new extern typedef |
運算子 | and or xor not not_eq or_eq sizeof delete bitand bitor compl operator |
條件 | if else switch case default |
迴圈 | for while do continue break goto |
函式 | return void inline friend |
物件導向 | class struct this enum namespace private public protected typeid |
錯誤 | catch noexcept throw try |
其他 |
alignas alignof asm const_cast constexpr decltype dynamic_cast explicit reinterpret_cast static_assert static_cast template thread_local |
就是一排可以隨機取用跟變更的變數
資料型態 陣列名稱[陣列長度];
這個陣列有arr[0]
、arr[1]
、arr[2]
、arr[3]
、arr[4]
共5項
請注意陣列一切從0開始(0-base),可能一開始會不習慣,久了就沒事了
cout指的是輸出,在我們的第一個程式中有這麼一行程式碼
用法就是cout
加上<<
再加上你要輸出的東西
要輸出的東西如果是變數,那在<<
後就不用加""
否則就要加
而如果要連著輸出多個東西,一樣可以用<<
再接下去
執行結果:
cin指的是輸入,在前面的變數部分有提到,變數是存放資訊的箱子。除了在創建變數的時候就賦值給他,還可以用cin>>
來賦值給變數。
假如我們要給a賦值為10,執行結果會像
=
賦值運算子=
與數學中的=
的意思不同a=3
:將3這個值賦予給a這個變數==
,詳情請見if else篇+
-
*
/
%
運算子%
是算餘數的意思++
--
運算子++
: +1--
: -1工程師就比較懶
+=
-=
*=
/=
%=
運算子其實就只是縮寫,不是新的東西
a+=10; 等價於 a=a+10;
a*=10; 等價於 a=a*10;
==
!=
>=
<=
>
<
!=
代表 ≠
(不等於)||
&&
!
||
:兩側至少其中之一為true時回傳true&&
:兩側皆須為true才為true時回傳true!
:變號 true變false false變true其實還有xor^
為兩側恰有其一為true時回傳true
功能: 用於在不同的條件下,執行不同的程式片段
if()
用法偷懶的用法:
或
偷懶是有代價的,如果用的偷懶的用法,執行的東西只能有一個
else if()
用法可以用於前面的條件不符合
else
用法在所有條件皆不符合時,作為例外狀況使用
用法:重複執行相同的事情
模板:
範例:
執行結果:
模板:
範例:
執行結果:
註冊iscoj
如果沒有email請向現場助教要臨時帳號