~C語言的主要特點~
1.語言簡潔、緊湊,使用方便、靈活
C語言有37個關鍵字,9種控制語句,程式書寫形式自由,主要用小寫字母表示,壓縮了一切不必要的成分。實際上,C是一個很小的核心語言,只包括極少的與硬體有關的成分,C語言不直接提供輸入和輸出語句、有關檔案操作的語句和動態記憶體管理的語句等(這些操作由編譯系統所提供的庫函式來實現的),C的編譯系統相當簡潔。
關鍵字
auto |
break |
case |
char |
const |
continue |
default |
do |
double |
else |
enum |
extern |
float |
for |
goto |
if |
inline |
int |
long |
register |
restrict |
return |
short |
signed |
sizeof |
static |
struct |
switch |
typedef |
union |
unsigned |
void |
volatile |
while |
_bool |
_Complex |
_Imaginary |
2.運算子豐富
C語言的運算子包含的範圍很廣泛,共有34種運算子。C語言把括號、賦值和強制型別轉換等都作為運算子處理,從而使C語言喲運算型別極其豐富,表示式型別多樣化。
運算子和結合性
優先順序 |
運算子 |
含義 |
要求運算物件的個數 |
結合方向 |
1 |
() |
圓括號 |
自左至右 |
|
[] |
下標運算子 |
|||
-> |
指向結構體成員運算子 |
|||
. |
結構體成員運算子 |
|||
2 |
! |
邏輯非運算子 |
1 (單目運算子) |
自右至左 |
~ |
按位取反運算子 |
|||
++ |
自增運算子 |
|||
-- |
自減運算子 |
|||
- |
負號運算子 |
|||
(型別) |
型別轉換運算子 |
|||
* |
指標運算子 |
|||
& |
取地址運算子 |
|||
sizeof |
長度運算子 |
|||
3 |
* |
乘法運算子 |
2 (雙目目運算子) |
自左至右 |
/ |
除法運算子 |
|||
% |
求餘運算子 |
|||
4 |
+ |
加法運算子 |
2 (雙目目運算子) |
自左至右 |
- |
減法運算子 |
|||
5 |
<< |
左移運算子 |
2 (雙目目運算子) |
自左至右 |
>> |
右移運算子 |
|||
6 |
< <= > >= |
關係運算符 |
2 (雙目目運算子) |
自左至右 |
7 |
== |
等於運算子 |
2 (雙目目運算子) |
自左至右 |
!= |
不等於運算子 |
|||
8 |
& |
按位與運算子 |
2 (雙目目運算子) |
自左至右 |
9 |
^ |
按位異或運算子 |
2 (雙目目運算子) |
自左至右 |
10 |
| |
按位或運算子 |
2 (雙目目運算子) |
自左至右 |
11 |
&& |
邏輯與運算子 |
2 (雙目目運算子) |
自左至右 |
12 |
|| |
邏輯或運算子 |
2 (雙目目運算子) |
自左至右 |
13 |
? : |
條件運算子 |
3 (三目運算子) |
自右至左 |
14 |
= += -= *= /= %= >>= <<= &= ^= != |
賦值運算子 |
2 (雙目目運算子) |
自右至左 |
15 |
, |
逗號運算子 (順序求值運算子) |
自左至右 |
3.資料型別豐富
C語言提供的資料型別包括:整型、浮點型、字元型、陣列型別、指標型別、結構體型別和共用體型別等,C99又擴充了複數浮點型別、超長整型和布林型別等。尤其是指標型別資料,使用十分靈活和多樣化,能用來實現各種複雜的資料結構(如連結串列、樹、棧等)的運算。
4.具有結構化的控制語句
如if…else語句、do…while語句、switch語句和for語句等。用函式作為程式的模組單位,便於實現程式的模組化。
C語言是完全模組化和結構化的語言。
5.語法限制不太嚴格,程式設定自由度大。
6.C語言允許直接訪問實體地址,能進行位操作,能實現組合語言的大部分功能,可以直接對硬體進行操作。
C語言既具有高階語言的功能,又具有低階語言的許多功能,可用來編寫系統軟體。
7.用C語言編寫的程式可移植性好。
8.生成目的碼質量高,程式執行效率高。
目前C語言的主要用於之一是編寫“嵌入式系統程式”。