C語言的關鍵字,運算符,標識符


關鍵字

數據類型修飾相關

auto按照自動的方式進行變量的存儲
const定義常量或常參數
extern聲明外部變量或函數
register指定變量的存儲類型是寄存器變量
static指定變量的存儲類型是靜態變量,或指定函數是靜態函數
volatile變量的值可能在程序的外部被改變

數據類型相關

char字符型數據
short定義短整型變量或指針
int整型數據
long長整型數據
signed有符號的整型數據
unsigned定義無符號的整型變量或數據
float單精度浮點型數據
double雙精度浮點型數據
struct結構體型數據
enum枚舉型類型
union聯合型數據
void空型數據
typedef為數據類型定義別名

流程控制相關

continue結束本次循環進入下一次循環
break跳出循環或switch語句
switch定義switch語句
case定義switch中的case子句
default定義switch中的default子句
do定義do-while語句
while定義while或do-while語句
if定義if語句或if-else語句
else定義if-else語句
for定義for循環語句
goto定義goto語句

預處理相關

#include包含頭文件
#define定義宏
#undef取消已經定義的宏
#if定義條件編譯的條件
#ifdef定義條件編譯的條件
ifndef定義條件編譯的條件
#elif定義條件編譯的條件
#endif結束條件編譯

其他

return從函數返回

運算符

優先級 運算符 含義 操作數數目 結合方向感
1 () [] -> . 括號(函數等),數組,兩種結構成員訪問 雙目 左-右
2 ! ~ ++ -- + - |* & (類型) sizeof 否定,按位取反,自增,自減,正負號,間接,取址,類型轉換,求大小 單目 右-左
3 * / % 乘,除,取模 雙目 左-右
4 + - 加,減 雙目 左-右
5 << >> 左移,右移 雙目 左-右
6 < <= >= > 小於,小於等於,大於等於,大於 雙目 左-右
7 == != 等於,不等於 雙目 左-右
8 & 按位與 雙目 左-右
9 ^ 按位異或 雙目 左-右
10 | 按位或 雙目 左-右
11 && 邏輯與 雙目 左-右
12 || 邏輯或 雙目 左-右
13 ? : 條件 三目 右-左
14 = += -= *= /= &= ^= |= <<= >>= 各種賦值 雙目 右-左
15 , 逗號(順序) 雙目 左-右

()括號運算符,表示一個標識符代表一個函數,fcnname()。 還可用於划分優先級,即1+23,如果不記得先算+還是先算,那就寫成1+(23)或(1+2)3。最后,括號還可以用於C的強制類型轉換。
[] 數組運算符,表示一個標識符代表一個數組,arrname[]。從數組中取一個元素,arr[2]
->成員訪問,用於通過指針變量訪問成員,ptr->member等價於(*ptr).member
.成員訪問,訪問復合數據類型的成員
按位取反,1變0,0變1
++自增運算符,將變量自身的值加一,分為前++和后++,前++是先執行自增使用增加后的值進行運算,后++是先進行運算,語句執行完畢后再進行++,效率不如前++,因為需要將變量的值臨時復制一份
*取值運算符,聲明某一類型的變量。取一個指針變量指向的值
&取址運算符,取一個變量的地址
<< 左移運算符,將操作數的二進制數據向左移一位,低位補0。當然是對補碼移動,但對原碼還是補碼進行左移其結果都相當於將數據乘以2的n次方
<<右移運算符,將操作數的二進制數據向右移一位,帶符號右移時高位補0,右移n位相當於除以2的n次方,不帶符號時高位補符號位,此時非負數還是相當於除以2的n次方,負數就不是了
&按位與,有0出0,全1出1
^按位異或,不同為1,相同為0,使用異或交換兩個數:a^=b;b^=a;a^=b;
|按位或,有1出1,全0出0,
&&邏輯與,全真為真,有假為假,C語言中用1表示負真異,0表示非負假同
?:條件運算符,C語言中唯一一個三目運算符,表達式A?表達式B:表達式C表示對表達式A的值進行判斷,如果A為真,則執行表達式B,否則執行表達式C

標識符

C語言里使用名稱區分不同內容,諸如變量名,函數名etc這些名稱叫做標識符(Identifier),實際開發總是采用駝峰式或者下划線式來書寫標識符,標識符的長度沒有限制,但是編譯器只會截取一部分使用
它的編寫規則:

  1. Keyword不能當標識符
  2. 第一個字符應該是 英文字母、下划線
  3. 后面的每個字符可以是 英文字母、下划線、阿拉伯數字字符
  4. 大小寫敏感


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM