直接固定都不會再執行期間改變的數大都為常數(const),與數學上的意思是相同的
如 1(整數常數)、3.14(浮點數常數)、'a'(字元常數)、"<3"字串常數
在程式語言中常會需要用到改變的內容
如 使用者要輸入一個值,然後設計者再透過這個值做計算得出一個值,這時候就需要用一個變數來存使用者輸入的資料(因為使用者要輸入的值在設計時是一個未知數),所以這時候就需要用到變數了,跟數學假設一個x其實差不多的,只是你要讓電腦知道你有這個x,他存著什麼。
但是變數也有分很多種類,如下(藍字為最基本常用)
- 數學類
- 整數
- 帶正負號
- int
- signed int
- short int
- signed short
- long int
- long long
- 僅>=0(這種變數都會帶unsigned(沒有正負號)開頭)
- unsigned int
- unsigned short
- unsigned long
- unsigned long long
- 邏輯(需要引用stdbool.h)
- bool 在C語言中,邏輯運算為true就是1其他數字就是false,並無內建布林變數
- 帶正負號
- 非整數
- double
- float
- long double
- 整數
- 字元類
- 有正負
- char
- signed char
- 僅>=0(unsigned)
- unsigned char
- 字串(字元陣列)
- 有正負
- 其他
- void 就是沒有
如上 有那麼多種變數,其實只是看你要用哪種型態,跟大小(表示範圍)就可以決定了
再來介紹宣告方式,以一個你想要的變數類型名稱 空一個 再加上你要的變數名字,
變數名字有限制要由大小寫字母開頭,第一個自以後可以用字母或數字或_,且宣告名稱不能與保留字相同
如下宣告示範
int a; float f_1; char c01;
當然,如果要宣告都是同一個類型的變數,可以用逗號隔開
int a,b,c; float f_1,f_2,fff; char c01,k,j;
如果在變數一開始,就要賦予指定的數值的時候,在後方直接給=數值,就是初始值
int a=100; float f_1=99.999; char c01='!';
然後綜合上方的需求,可能有些要初始,有些不要
int a=1,b=3,c; float f_1=3.1415926,f_2=2.71828,fff=94.87; char c01='@',k='?',j;
下表為變數大小(取自wiki)
關鍵字 |
位長(位元組) | 範圍 | 格式化字串 |
---|---|---|---|
char |
1 bytes | -128..127(或0..255,與體 系結構相關) |
%c |
unsigned char |
1bytes | 0..255 | %c, %hhu |
signed char |
1bytes | -128..127 | %c, %hhd, %hhi |
int |
2bytes (16位元系統) 或 4bytes |
-32768..32767 或 -2147483648..2147483647 |
%i, %d |
unsigned int |
2bytes 或 4 bytes |
0..65535 或 0..4294967295 |
%u |
signed int |
2bytes 或 4bytes |
-32768..32767 或 -2147483648..2147483647 |
%i, %d |
short int |
2bytes | -32768..32767 | %hi, %hd |
unsigned short |
2 bytes | 0..65535 | %hu |
signed short |
2bytes | -32768..32767 | %hi, %hd |
long int |
4bytes 或 8bytes[7] |
-2147483648..2147483647 或 |
%li, %ld |
unsigned long |
4bytes 或 8 bytes |
0..4294967295 或 0..18446744073709551615 |
%lu |
signed long |
4 bytes或 8bytes |
-2147483648..2147483647 或 |
%li, %ld |
long long |
8bytes | -9223372036854775808.. 9223372036854775807 |
%lli, %lld |
unsigned long long |
8bytes | 0..18446744073709551615 | %llu |
float |
4bytes | 2.939x10−38..3.403x10+38 (7 sf) |
%f, %e, %g |
double |
8bytes | 5.563x10−309..1.798x10+308 (15 sf) |
%lf, %e, %g |
long double |
10bytes或 16bytes |
7.065x10-9865..1.415x109864 (18 sf或33 sf) |
%Lf, %Le, %Lg |
文章標籤
全站熱搜