任何高級語言都有自定義的詞法符號和支持的數據類型。
詞法符號是語言的基本組成單位,數據類型是數據的基本屬性。這裡我將先對C語言的C法符號做一個小的總結,既是對我自己C語言的一個系統的整理與提高,也希望對希望提高C語言有所幫助,對於數據類型我將在隨後一段時間總結介紹。
詞法符號是程序設計語言中有若干字符組成的有意義的最小語法單位。
按照詞法符號在程序中的作用可以分為:關鍵字、標識符,分隔符、運算符和標點符。
1.1關鍵字:是由系統預定義的詞法符號,有特定的含義,不允許用戶重新定義,所以在定義標識符的時候不能與關鍵字重名。基本的關鍵字有32個,分別如下:
C語言關鍵字分為兩個大的類型,其中兩種大的類型又分為七種小的類型:
void:聲明函數無返回值或無參數,聲明無類型指針,顯式丟棄運算結果
char:字符型類型數據,屬於整型數據的一種
int:整型數據,通常為編譯器指定的機器字長
float:單精度浮點型數據,屬於浮點數據的一種
double:雙精度浮點型數據,屬於浮點數據的一種
short:修飾int,短整型數據,可省略被修飾的int。
long:修飾int,長整形數據,可省略被修飾的int。
signed:修飾整型數據,有符號數據類型
unsigned:修飾整型數據,無符號數據類型
struct:結構體聲明
union:共用體聲明
enum:枚舉聲明
typedef:聲明類型別名
sizeof:得到特定類型或特定類型變量的大小
auto:指定為自動變量,由編譯器自動分配及釋放。通常在棧上分配。
static:指定為靜態變量,分配在靜態變量區,修飾函數時,指定函數作用域為文件內部。
register:指定為寄存器變量,建議編譯器將變量存儲到寄存器中使用,也可以修飾函數形參,建議編譯器通過寄存器而不是堆棧傳遞參數。
extern:指定對應變量為外部變量,即在另外的目標文件中定義,可以認為是約定由另外文件聲明。
const:與volatile合稱“cv特性”,指定變量不可被當前線程/進程改變但有可能被系統或其他線程/進程改變)。
volatile:與const合稱“cv特性”,指定變量的值有可能會被系統或其他進程/線程改變,強制編譯器每次從內存中取得該變量的值。
return:用在函數體中,返回特定值或者是void值,即不返回值)
continue:結束當前循環,開始下一輪循環
break:跳出當前循環或switch結構
goto:無條件跳轉語句
if:條件語句
else:條件語句否定分支與if連用)
switch:開關語句多重分支語句)
case:開關語句中的分支標記
default:開關語句中的“其他”分治,可選。
for:for循環結構,for(1;2;3)4;的執行順序為1->2->4->3->2...循環,其中2為循環條件
do:do循環結構,do 1 while(2);的執行順序是1->2->1...循環,2為循環條件
while:while循環結構,while(1) 2;的執行順序是1->2->1...循環,1為循環條件
以上循環語句,當循環條件表達式為真則繼續循環,為假則跳出循環。
以上各種類型的關鍵字的用法在這裡就不再詳細的介紹了。相信隨著大家對C語言的深入了解後都會碰見的。
1.2標識符:標識符是由程序員按照命名規則自行定義的詞法符號,用於宏定義、變量名、函數名和自定義類型名等。其命名規則如下:
1)、標識符由一個或多個字母、數字或下劃線組成;
2)、標識符的第一個字符必須是字母或下劃線;
3)、標識符不能與任何關鍵字相同;
1.3 分隔符:包括逗號、空白符、分號和冒號。
c語言中,分隔符用來分隔多個變量、數據項、表達式等的符號。逗號作為分隔符用來分隔多個變量和函數參數;空白符常用來作為多個單詞間的分隔符,也可以作為輸數據時自然輸入項的缺省分隔符;分號常用於for循環語中for後面,圓括號內的三個表達式之間;冒號用於語句標號與語句之間。
1.4運算符:表示運算的詞法符號,C語言有著非常豐富的運算符,按其功能分,如下表:
其中特別要注意:
1)、算術求余運算不支持浮點運算,整除運算符“/”兩邊的操作數都為整數時其值才取整數;
2)、關系運算符"=="、">="、"<="、"!="中間不能有空格。還要特別注意不要把"=="與賦值運算符"="等同,"=="表示判斷左右兩邊是否相等;
3)、一定要留意位運算符"&&"、"||"短路特性;
4)、位運算符的運算對象必須是整數,浮點類型的不支持位運算;
5)、在擴展的賦值運算符如"&="等間沒有空格符號;
6)sizeof是32個關鍵字中的一種,看到sizeof)不要認為就是函數;
大概的將C語言運算符中需要注意的都一一列舉了下,難免有不全之處,望不吝賜教!^-^
1.5標點符:
C語言中的標點符共有13個,即:[ ] ) { } * ,: = ;… # &取地址)->(指向) .
本文出自 “成長之路” 博客,請務必保留此出處http://7905648.blog.51cto.com/7895648/1297379