C語言關(guān)鍵字
C語言中具有特殊含義的英文單詞,通常用于構(gòu)成語句,存儲數(shù)據(jù),定義數(shù)據(jù)類型等嗎,我們定義變量或函數(shù)時不得與其相同!其中一些在上一篇中我們有見到過,有些是我們接下來馬上要講解的內(nèi)容,其余的后面再實例分析,一共有32個關(guān)鍵字,內(nèi)容見下表:
可以大致分類一下進行記憶。
if與switch
正如if是英文字面意思“如果”,在C語言中使用if作為判斷語句,判斷結(jié)構(gòu)要求程序員指定一個或多個要評估或測試的條件,以及條件為真時要執(zhí)行的語句(必需的)和條件為假時要執(zhí)行的語句(可選的)。C 語言把任何非零和非空的值假定為 true,把零或 null 假定為 false。和我們平時說話做假設一樣,if可以單獨使用,它的使用方法與流程圖如下:
if (test expression)
{
//測試表達式為真時,執(zhí)行的語句
}
另外,它也可以和else一起使用,可以為各判斷條件設計程序塊,也可以使用多個else分支,使用方法和流程圖如下:
例一:
if (test expression)
{
//測試表達式為真時,要執(zhí)行的語句
}
else
{
// 如果測試表達式為假,則執(zhí)行的語句
}
例二:
if (test expression1)
{
// 語句
}
else if(test expression2)
{
// 語句
}
else if (test expression3)
{
// 語句
}
……
else
{
// 語句
}
另外if語句還可以進行嵌套,也就是在判斷中再進行判斷,如果有的話也可以接著繼續(xù)嵌套下去,想想一下套娃就明白了,道理是一樣的,這應該很容易明白吧。
在C語言中除了使用if進行判斷也可以使用switch語句做條件判斷,它也被稱為開關(guān)語句,在某個判斷邏輯下,如果有多個與之對應的結(jié)果,這時我們就可以使用它來實現(xiàn)出現(xiàn)那個結(jié)果就進入那個分支,這兩種語法在一定條件下是可以互轉(zhuǎn)的,并且各有優(yōu)勢,其中switch必須配合case關(guān)鍵字一起使用,通常也會搭配break,continu,default語言使用。我們看一下它的使用方法與流程圖:
switch (expression)
{
case constant1:
// 語句
break;
case constant2:
// 語句
break;
……
default:
// 默認語句
}
和if一樣它也可以進行嵌套,這要邏輯合理即可,在使用過程中,我們通常會根據(jù)實際的使用需求來決定具體使用它兩中的那種,一般來時如果是簡單的條件判斷那肯定是使用if比較簡介,如果應用場景中有很多相似分支,那我們就可以選擇使用switch。
if (test expression1)
{
if (test expression)
{
//測試表達式為真時,要執(zhí)行的語句
}
else
{
// 如果測試表達式為假,則執(zhí)行的語句
}
}
else if(test expression2)
{
if (test expression)
{
//測試表達式為真時,要執(zhí)行的語句
}
else
{
// 如果測試表達式為假,則執(zhí)行的語句
}
}
……
當然以上都是典型的一些用法,在具體使用時還可以對它們進行相互嵌套,有了良好的編程邏輯后我們要學會靈活運用這些知識。
for與while
在C語言中當我們需要進行循環(huán)操作,這時就可以使用for或while語句了,這兩個詞的英文本意都有“直到xx才xx”的意思,只不過它們使用的語法各有差別,但兩者都可以實現(xiàn)互換。我們來看一下它們的具體使用方法。
以下是while的循環(huán)流程圖,如果條件成立就一直執(zhí)行,不成立就退出。
while (testExpression)
{
// 循環(huán)體中的語句
}
while還有一種使用方法是與do配合使用,就是不管條件怎么先執(zhí)行一遍再詢問條件,其實就是換了一種說法而已,但它們的不同就是在于前者先判斷后執(zhí)行,后者先執(zhí)行再判斷,使用時序根據(jù)語意選擇合適方式,它的具體方法和執(zhí)行流程如下:
do
{
//循環(huán)體內(nèi)的語句
}
while (testExpression);
for循環(huán)語句相對while和do…while使用格式有些不一樣,但意思是差不多的,我們來看一下:
for (initializationStatement; testExpression; updateStatement)
{
//循環(huán)體內(nèi)的語句
}
以上3中循環(huán)方式各有各的特點,使用時根據(jù)語境進行選擇。for循環(huán)語句的流程圖看起來比其他兩者復雜,其實使用起來還是很方便的,后面我們在再分別舉例對比測試。
循環(huán)語句也可以搭配break,continu對循環(huán)進行控制,甚至能與goto語句一起使用,但goto語句容易引起程序結(jié)構(gòu)混亂一般不建議使用,我個人建議最好別用,所以不做講解,有興趣的朋友可以自行了解一下。
C語言定義函數(shù)
學會以上條件,和循環(huán)語句后,雖然你可能還是不會編程,但一些基本的編程的邏輯思維應該是清楚了吧,現(xiàn)在來講解一下我們編程需要掌握的最后一個環(huán)節(jié),它就是定義函數(shù)。我們肯定已經(jīng)知道變量,常量是什么了,又知道了程序運行時的一些判斷邏輯了,假設現(xiàn)在要你設計一個控制LED一閃一閃的程序,你腦海里應該有一個大概的想法了吧?先點亮LED,各一段時間再熄滅LED,然后再繼續(xù)重復,對吧,程序邏輯就是這么簡單!那么,我們要怎么執(zhí)行這些程序段呢?這就需要我們設置一個函數(shù)了,在C語言中一段代碼要能執(zhí)行必須包含一個函數(shù),這個函數(shù)就是main函數(shù),也叫主函數(shù)。所有的程序運行都是從main函數(shù)開始,可能不好理解,簡單來說就是,main函數(shù)是必不可少的,當程序編譯成機器代碼時編譯器會先找程序中是main函數(shù),找到了就進入函數(shù)繼續(xù)編譯,沒找到就報錯。
除了main函數(shù)之外,我們編程是可以將某個功能模塊的代碼封裝成一個函數(shù),然后在使用時直接調(diào)用,這樣就可以讓我們的代碼可讀性更強,可維護性更高。
我們來看一下函數(shù)的的基本內(nèi)容:
●函數(shù)聲明 :必須在C程序中全局聲明函數(shù),以告知編譯器函數(shù)名稱,函數(shù)參數(shù)和返回類型。
●函數(shù)定義:它包含要執(zhí)行的實際語句。這是調(diào)用函數(shù)時控件所涉及的最重要方面。在這里,我們必須注意,該函數(shù)只能返回一個值。
●函數(shù)調(diào)用:可以從程序中的任何位置調(diào)用函數(shù)。參數(shù)列表在函數(shù)調(diào)用和函數(shù)聲明中要相同。我們必須傳遞與函數(shù)聲明中聲明的函數(shù)數(shù)量相同的函數(shù)。
以上說明可能比較專業(yè)化,簡單來說就是和變量的使用規(guī)則一樣,所有函數(shù)都要先定義后使用,并且如果你定義的位置在調(diào)用的位置之后,或函數(shù)定義和調(diào)用不在同一個文件那就必須在函數(shù)調(diào)用的之前對定義好的函數(shù)進行聲明。對于初學者來說這是函數(shù)的一個難點,我們后續(xù)會在使用案例中做更詳細的講解。
學會使用函數(shù)之后你就可以嘗試寫出自己的模塊功能代碼了,以后再使用相同功能時復制過去就可以進行使用測試了。
函數(shù)定義示例:
return_type function_name(data_type parameter...)
{
//要執(zhí)行的代碼
}
printf與scanf
屏幕和鍵盤是計算機與外界進行人機交互的主要工具,C語言中我們可以編程通過屏幕顯示信息,也可以通過鍵盤進行輸入信息。C語言中最基礎的向屏幕輸出信息的函數(shù)是printf,scanf是其對應的獲取鍵盤輸入信息的函數(shù)。但是它們時需要一定規(guī)則才能正確執(zhí)行操作的。其中使用到的一些特殊字符進行轉(zhuǎn)義再使用某些特定字符進行格式化輸入,輸出,具體如下表介紹:
這些是我們需要熟練使用的,編程練習的過程中多嘗試就可以容易的記住了。在51電單片機中是不可能驅(qū)動得了電腦屏幕這么復雜的設備的,但我們可以應用串口連接電腦,在通過這些函數(shù)在串口助手這樣的小工具上輸入輸出信息從而實現(xiàn)人機交換的目的。
C語言程序文件
C語言中編寫的代碼可能文件主要有.c和.h文件,.c文件就是我們存放代碼的主要文件,.h文件叫頭文件,它用來存放變量,函數(shù)的聲明以及使用到的其他.h文件等。我們把定義的變量,函數(shù)以及其他一些實現(xiàn)代碼功能必要的內(nèi)容保持在.c文件里。如果是簡單的程序,我們直接在一個.c文件里面編寫就可以了,但以后需要寫更復雜的程序時我們就要學會將代碼分類,把個部分功能不相同的代碼用不同的.c文件保存,并分別為它們添加一個名稱相同的.h文件(名稱也可以不同,只是為了方便管理,所以最好是保存一致),這種方法就是模塊化編程方法,這是做項目開發(fā)時必須會使用的一種編程思維?,F(xiàn)在不懂沒關(guān)系,后面我們再一一講解。
C語言庫函數(shù)
前面我們說到了自己定義函數(shù),分類打包函數(shù),其實只要你安裝了C語言編譯器,在我們電腦系統(tǒng)里就會包含很多C語言源代碼了,這些代碼大多數(shù)都是官方編寫的,我們稱它們?yōu)楣俜綆煳募?。這些文件中就包含了官方庫函數(shù),我們可以直接調(diào)用它們。有了官方庫文件之后我們才能順利執(zhí)行我們自己編寫的代碼,事實上我們編寫的最簡單的例子都會使用到庫文件,所以想快速學習模塊化編程的朋友不妨看一下官方的代碼時怎么寫的。具體的知識我們后面子再一一講解。
評論
查看更多