資料型態(Data Type)
原則上,C語言中基礎的資料型態有以下幾中(只列出常用的):
| 關鍵字 | 意義 | 位元組(資料的大小) |
|---|---|---|
| char | Character,字元,意旨一個字或符號,使用’‘單引號框住單個字符,如:‘A’、’&’。 | 1 Byte |
| int | Integer,整數,就是一般的整數,有數值大小的限制。以4 Bytes的情況下是-2,147,483,648 至 2,147,483,647。 | 4 Bytes |
| float(double) | 浮點數,指的是有小數點的數如1.6、180.0。double是雙倍精確度的float,可以當作小數點位數可以容納更多的浮點數。也因此double的資料大小會是float的兩倍大 | 4 Bytes |
> NOTE: 資料的大小只是通常,在不同系統的電腦中或多或少會有不同。
變數
#include
int main(){
char a='a';
int b=2;
float c=1.3;
return 0;
}
變數的概念類似於容器,在定義(宣告)時使用以下語法:
資料型態 變數名稱 = 資料
輸出
輸出變數時同樣使用printf(),但必須搭配"格式化字串"來使用:
| 變數類型 | 格式化字串 |
|---|---|
| char | %c |
| int | %d |
| float | %f |
| double | %lf |
從上表來看要印出範例中所有變數的話需要使用如下:
#include
int main(){
char a='a';
int b=2;
float c=1.3;
printf("%c",a);
printf("%d",b);
printf("%f",c);
return 0;
}
這時候印出來的資料會發現是同一行且沒有間隔,非常不易閱讀。
a21.300000
所以有一種特殊字元稱作跳脫字元,如下:
| 符號 | 意義 |
|---|---|
| \n | 換行 |
| \t | 間隔一個tab鍵的距離 |
> NOTE: 還有非常多種跳脫字元,這邊只列出比較常用的兩種。
所以把範例程式整理成這樣:
#include
int main(){
char a='a';
int b=2;
float c=1.3;
printf("%c\n",a);
printf("%d\n",b);
printf("%f\n",c);
return 0;
}
就可以得到:
a
2
1.300000
所以可知,要對印出的資料進行排版時,可以調整printf()中的""內的文字,來達成。例如想印出"數字 數字"的話也可以使用printf("%d %d",數字一,數字二);
輸入
輸出使用同樣來自“““的scanf()函式,使用的範例如下:
#include
int main(){
int a;
scanf("%d",&a);
printf("a is %d",a);
return 0;
}
其中scanf("%d",&a);是指輸入資料到a記憶體中,在做這個指令之前必須先定義好a是什麼類型的資料,並且搭配取址運算符號"&“,”&"可以取得變數在記憶體中的位址,scanf()也是透過直接將資料填入記憶體中的方式來做輸入。
也可以透過以下方式印出資料a的記憶體位址:
#include
int main(){
int a;
printf("%d\n",&a);
return 0;
}
基礎運算
C語言中使用的基礎運算符號如下:
| 符號 | 意義 | 備註 |
|---|---|---|
| + | 加法 | |
| – | 減法 | |
| * | 乘法 | |
| / | 除法 | |
| % | 相除取餘數 | 若x=10,y=3,則x%y=1。 |
加減乘除支概念與數學相同,但取餘數的運算會很常跟除法運算搭配使用,並且可以做到一些特殊的功能,例如數字位移等: 假設有一數字13582,題目要求計算所有位數的總和即1+3+5+8+2,透過%10運算可以得到最右端的數值:13582%10=2,而13582/10=1358,重複執行並將數值做累加後即可符合題目要求。
另一個%常用的地方是在計算因數以及做週期計算:
範例題目:
判斷a是否為b的因數,若a%b為0,即代表a為b的倍數,b為a的因數。
範例題目:
一周有7天,那523天為幾周又幾天?523/7即為週數,523%7即為天數。

發表留言