close

直接固定都不會再執行期間改變的數大都為常數(const),與數學上的意思是相同的

如 1(整數常數)、3.14(浮點數常數)、'a'(字元常數)、"<3"字串常數

在程式語言中常會需要用到改變的內容

如 使用者要輸入一個值,然後設計者再透過這個值做計算得出一個值,這時候就需要用一個變數來存使用者輸入的資料(因為使用者要輸入的值在設計時是一個未知數),所以這時候就需要用到變數了,跟數學假設一個x其實差不多的,只是你要讓電腦知道你有這個x,他存著什麼。

但是變數也有分很多種類,如下(藍字為最基本常用)

  • 數學類
    1. 整數
      • 帶正負號
        • 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,並無內建布林變數
    2. 非整數
      • double  
      • float
      • long double 
  • 字元類
    1. 有正負
      • char
      • signed char
    2. 僅>=0(unsigned)
      • unsigned char
    3. 字串(字元陣列)
  • 其他
    • 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 或
-9223372036854775808..
9223372036854775807

 %li, %ld
unsigned long 4bytes 或
8 bytes
0..4294967295 或
0..18446744073709551615
 %lu
signed long 4 bytes或
8bytes

-2147483648..2147483647 或
-9223372036854775808..
9223372036854775807

 %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
arrow
arrow

    繩繩 發表在 痞客邦 留言(0) 人氣()