進位法
雖然說進位法不很難,但是沒有碰過電腦的人,應該不常使用。
二進位
電腦最廣為人知的就是二進位,就只有1和0兩種數字就可以代表各種數。
八進位
因為二進位太麻煩,所以利用三個二進位數可以直接換成一個八進位數的原理製成。這種進位法只會出現0到7的數字。
十進位
這不用講了吧。十進位就是小學學、中學學、大學也在學的最常用進位法。
十六進位
有人搞出十六進位。其實就是四個二進位數可以轉換成一個十六進位數,十六進位會出現所有0到9的數字,但還不夠用,所以又加上了A到F。
簡易的範例
10 進位 | 2 進位 | 8 進位 | 16 進位 |
---|---|---|---|
20 | 10100 | 24 | 14 |
91 | 1011011 | 133 | 5B |
跳脫字元
C語言有許多跳脫字元,這些字元都是以反斜線 \ 為開頭。以下列出一些常用的:
字元 | 代表意義 | 字元 | 代表意義 |
---|---|---|---|
\n | 換行 newline | \’ | 單引號 |
\r | 復位 carriage-return | \\ | 反斜線 |
\b | 退格 backspace | \a | 響鈴 alert |
\t | 水平定位符號 horizontal-tab | \123 | 八進位的東西 |
\" | 雙引號 | \xFF | 十六進位的東西 |
\f | 換頁 form-feed | \v | 垂直定位 vertical-tab |
#include <stdio.h>
int main() {
printf("Hello\nworld!\"\'\\");
return 0;
}
執行結果
Hello
world!"'\
基礎型別 basic types
整數 integer
C語言有五種「標準有號整數型別(standard signed integer type)」,分別是signed char、short int、int、long int、long long int。這些型別的差異是其佔用的記憶體大小,也代表著可以儲存數字的範圍。要如何宣告呢?利用以下方法:
int a;
int b = 10;
int c, d;
宣告 a 代表一個 int 型別,然後宣告 b 是一個 int 型別,並且初始值是10,再來同時宣告 c 和 d 皆是 int。記住陳述最後要有分號。
沒有定義初始值,沒有人保證內容是什麼
宣告無號整數,可利用unsigned修飾字。
unsigned int p;
unsigned long int q;
unsigned short int r = 5;
unsigned char s = 20;
浮點數(實數) floating
C語言有三種浮點實數型別(real floating type),分別是float、double、long double,這三種浮點數型別差異也是其佔用記憶體大小,並影響精確度以及儲存數字的範圍。
浮點數不一定準確
要宣告浮點數,其實和整數差不多:
double w;
double x = 3.14;
double y, z;
宣告 w 代表一個 double 型別,然後宣告 x 是一個 double 型別,並且初始值是10,再來同時宣告 y 和 z 皆是 double。
所有浮點數型別皆是有號的
字元 character
C語言有幾個存放字元的型別,分別是char、signed char、unsigned char。其中char有可能是signed char或是unsigned char,這要看編譯器還有電腦架構。要宣告字元,利用以下方式(其實和其他類型差不多):
char h, i;
char j = 10;
char k = 'u';
char m = '\n';
複數 Complex
浮點數加上了_Complex關鍵字就成為了複數型別。這個型別是較為不常用的。
變數命名
限制
可以使用非數字字元(nondigit),也就是底線以及拉丁文字大小寫:
_abcdefghijklm
nopqrstuvwxyz
ABCDEFGHIJKLM
NOPQRSTUVWXYZ
_abcdefghijklm
nopqrstuvwxyz
ABCDEFGHIJKLM
NOPQRSTUVWXYZ
可以使用數字,但是不能在開頭:
0123456789
0123456789
還有個限制,就是變數名稱不能是C語言關鍵字,44個關鍵字如下表:
關鍵字 | 關鍵字 | 關鍵字 |
---|---|---|
auto | if | unsigned |
break | inline | void |
case | int | volatile |
chat | long | while |
const | register | _Alignof |
continue | restrict | _Alignas |
default | return | _Atomic |
do | short | _Bool |
double | signed | _Complex |
else | sizeof | _Generic |
enum | static | _Imaginary |
extern | struct | _Noreturn |
float | switch | _Static_assert |
for | typedef | _Thread_local |
goto | union |
關鍵字的用途會在以後闡述。
範例
以下是合法的命名
int abc;
double _kkk;
long int aaa_bbb;
unsigned short int _123_345;
以下是不合法的命名
int 2abc; // 數字不能在開頭
long int for; // 不能用關鍵字
字面常量
像是1、5.3之類的稱作字面常量,字面常量也有型別。例如1是一個int型別。下表提供一個簡單的參考
進位前綴 | 進位 |
---|---|
0 | 八進位 |
0x | 十六進位 |
型別後綴 | 十進位時型別 | 八進位或十六進位時型別 |
---|---|---|
U或u | unsigned int、unsigned long int、unsigned long long int | unsigned int、unsigned long int、unsigned long long int |
L或l | long int、long long int | long int、unsigned long int、long long int、unsigned long long int |
以上兩種同時出現 | unsigned long int、unsigned long long int | unsigned long int、unsigned long long int |
LL或ll | long long int | long long int、unsigned long long int |
LL或ll以及U或u同時出現 | unsigned long long int | unsigned long long int |
👉【幫我們一個忙!】👈
👋如果您喜歡這篇文章,請在下方按5個Like!
❤您的支持是我們最大的動力!
您只要登入帳號(Facebook、Google),在下方按5個Like,我們就會收到來自LikeCoin基金會的贊助。
您只需要支持我們,完全不會花到錢!