# 資料型態與宣告

當我們要使用一個變數的時候,需要先對它進行宣告
例如: int a;
意思是我們宣告一個資料型態為int(整數)的變數a,a裡面可以存固定範圍內的任何整數

以下是一些基本的資料型態:

資料型態 解釋 儲存內容&範圍 補充
bool 布林變數 true 和 false true=1 false=0
int 整數 2^-31 ~ 2^31-1
unsigned int 正整數 0 ~ 2^32-1
long long 特大的整數 2^-63 ~ 2^63-1
float 浮點數(小數) 有效位數7位
double 倍精確浮點數(小數) 有效位數15位
char 字元 0 ~ 255 (ASCII Code) ''表示
string 字串 一連串的任意文字 ""表示

變數宣告的標準語法為: 資料型態 變數名稱 = 值:

範例:

bool a = true;
int b = -5;
unsigned int c = 45;
long long d = 999;
float e = 3.56;
double f = 9.0005;
char g = 'y';
string h = "mystring";

cout << a << endl;
cout << b << " " << c " " << d << endl;
cout << e << " " << f << endl;
cout << g << " " << h;

輸出為:

1
-5 45 999
3.56 9.0005
y mystring

變數名稱的命名規則:

  1. 只能以英文字母及_開頭
  2. 只能包含英文字母、數字及_
  3. 保留字不能使用 (保留字為cout, cin, int, char...等)

int _abc; // 合法
int my_data_22; // 合法

int 12book; // 不合法
int cout; // 不合法


我們也可以一次宣告多個同型態的變數
例如: int a = 0, b, c;


補充:
C++11 之後新增了一個叫auto的資料型態
它會基於賦予的值自動判斷資料型態
例如:
auto a = 1; // auto為int型態
auto b = 'c'; // auto為char型態
由於他是根據賦予的值決定資料型態,所以沒有賦予值的形況下無法使用auto

建議一開始還是直接宣告資料型態
等到以後對資料型態比較熟悉,或宣告極其複雜的資料型態的時候才使用


# 基本運算子

以下是C++的基本運算子

符號 解釋
+ 加號
- 減號、負號
* 乘號
/ 除號
% 取餘數
= 指派
++ +1
-- -1
() 括號

基本上,這些運算子的用法就跟數學運算一樣
範例1:

int a = 1, b = 2, c = 3;

cout << a + b + c; // 印出6
cout << a - b - c; // 印出-4
cout << a * b * c; // 印出6
cout << c / a; // 印出3
cout << 3 % 2; // 印出1

其中比較特別的是%取餘數,以上面的程式來看,它的意思是取3除以2的餘數,答案為1


範例2:

int a = 0;
int b = a + 1;  // b = 1

cout << ++b << a++; // b印出2, a的值為1,但印出0

cout << a * (a + b);  // 印出3

a--;
--b;
cout << a << b;  // a印出0, b印出1

第二行中,運用到=指派運算子,將a的值+1賦予b,所以b的值為0 + 1 = 1

第四行中,同樣是++,但是一個在變數前面,一個在變數後面
它們的區別是++b會將b先+1,再做剩餘的運算,a++會先將a的值取出,做完運算再+1

實際上,++aa++是同時做+1
++a將a + 1,之後傳出a
a++會產生一個暫時的變數temp,先將temp = a,把a + 1,再傳出temp

第六行中,按照原本的順序是先乘除後加減,但是因為有括號,所以優先做括號內的運算


當你要在原本變數的基礎上進行運算時,能夠將寫法簡化,如下:
a += 1;a = a + 1;相等
a -= 1;a = a - 1;相等
a *= 1;a = a * 1;相等
a /= 1;a = a / 1;相等
a %= 1;a = a % 1;相等


# 註解

C++的註解共有兩種寫法

  1. 第一種是單行註解,以//表示,//後面的所以文字皆為註解
//單行註解
  1. 第二種是多行註解,以/* */表示,/* */內的文字皆為註解
/*
多行註解
*/