對(duì)零基礎(chǔ)學(xué)習(xí)C語(yǔ)言的前言
對(duì)于很多初學(xué)者而言,市面上大多數(shù)C教程一上來(lái)就會(huì)教你如何部署編寫(xiě)環(huán)境,然后按部就班地學(xué)習(xí)打印、循環(huán)、分支等等這些知識(shí)點(diǎn)。對(duì)于初學(xué)者在前期的學(xué)習(xí)中會(huì)因?yàn)楹芏喑橄蟮母拍疃萑牒荛L(zhǎng)一段適應(yīng)期,從而降低學(xué)習(xí)效率,本文的目的就是讓初學(xué)者快速明白C中的基本模塊從而能夠快速學(xué)習(xí)之后的內(nèi)容
注意:本文的部分內(nèi)容為了讓初學(xué)者更易理解,敘述上可能會(huì)不嚴(yán)謹(jǐn)。
第一個(gè)程序
以上的代碼編寫(xiě)了C語(yǔ)言中經(jīng)典的打印程序,對(duì)于從未學(xué)習(xí)過(guò)C的小伙伴根本無(wú)法理解這些文字。我們只先關(guān)注這行代碼:
對(duì)于這行代碼,我們只需要理解一個(gè)概念,也是本文希望初學(xué)者最先了解的一個(gè)概念——函數(shù)
這里的函數(shù)并非數(shù)學(xué)意義上的函數(shù),而是一種方法,可以理解為做某事的方法,例如——加法
顧名思義,加法就是將兩個(gè)及兩個(gè)以上的數(shù)進(jìn)行求和。我們可以在計(jì)算器上看到這種方法的具體例子,通過(guò)按計(jì)算機(jī)我們就能快速實(shí)現(xiàn)數(shù)字的相加并且得到最后的那個(gè)和。
假設(shè)我們要設(shè)計(jì)一個(gè)特殊的計(jì)算器,他的作用只有一個(gè),就是計(jì)算兩個(gè)整數(shù)的和,別無(wú)他用。
那么我們就可以模仿C的語(yǔ)法(先不管那么多,假設(shè)下面的內(nèi)容是正確的)設(shè)計(jì)出這種加法(函數(shù))方法:
我們來(lái)簡(jiǎn)單說(shuō)明一下,加法方法自然先需要兩個(gè)整數(shù),在它后面的括號(hào)里表明了這個(gè)觀點(diǎn)——這個(gè)方法需要兩個(gè)整數(shù)作為參數(shù),這兩個(gè)整數(shù)可以是用戶(hù)操作計(jì)算器按下得到的,然后花括號(hào)里面就是這個(gè)方法具體運(yùn)行的內(nèi)容,可以看到這個(gè)方法返回了兩個(gè)整數(shù)的和,這樣計(jì)算器就可以得到這個(gè)方法算出的數(shù),然后再通過(guò)一些手段讓他顯示在屏幕上讓用戶(hù)能夠看到最后算出的結(jié)果。
以上的代碼僅僅是設(shè)計(jì)了這么一種方法但是還并沒(méi)有使用它(就像是做好了一頓但是還沒(méi)吃),設(shè)計(jì)這個(gè)方法的這個(gè)部分叫做定義,我們?cè)谡骄帉?xiě)代碼時(shí)會(huì)定義一些東西然后才能使用它們,使用這些方法的過(guò)程叫做調(diào)用,下面我們演示如何調(diào)用這個(gè)方法/函數(shù)。
以上就演示了我們調(diào)用加法方法去計(jì)算1和5的和。
我們?cè)賮?lái)一個(gè)例子鞏固理解:
假設(shè)我們需要讓用戶(hù)看自己按下計(jì)算器的數(shù)字,我們?cè)O(shè)計(jì)一種方法來(lái)讓屏幕顯示用戶(hù)的輸入
括號(hào)里表明,這個(gè)方法需要接收用戶(hù)輸入的一些內(nèi)容,我們省略了花括號(hào)里的內(nèi)容,不過(guò)我們只要知道這些操作只是為了讓用戶(hù)輸入的內(nèi)容顯示到屏幕上就好啦,讓我們演示一下如何調(diào)用它。
假設(shè)我們的調(diào)用是正確且符合C的語(yǔ)法,那么我們希望的是在屏幕上顯示114514
了解了以上的知識(shí)點(diǎn),我們按照C語(yǔ)法標(biāo)準(zhǔn)換一種寫(xiě)法:
這個(gè)方法和我們之前定義的加法方法同等效力,其中的int是整數(shù)的意思,這表示了需要的未知數(shù)(參數(shù))x和y是整數(shù),下面的return表示了這個(gè)方法將x+y返回了。
我們只是將之前的屏幕打印方法換了一種寫(xiě)法,現(xiàn)在你應(yīng)該能夠大致明白函數(shù)的意思了,我們回到第一個(gè)程序中:
這里的printf函數(shù)(函數(shù)就是方法)就是C中的一種屏幕打印函數(shù),其作用是把一鍵三連顯示到了屏幕上。值得注意的是,我們提到過(guò)我們編程時(shí)要定義一些東西才能使用它們,通過(guò)觀察可以發(fā)現(xiàn),我們只是在程序里調(diào)用了printf函數(shù),可是它并沒(méi)有被定義啊,計(jì)算機(jī)又怎么能知道它是什么呢?這時(shí)候我們就要提到另一個(gè)知識(shí)點(diǎn)啦
預(yù)處理命令
我們可以注意到程序的開(kāi)頭,這一代碼的意思是將尖括號(hào)中stdio.h這個(gè)文件內(nèi)的代碼復(fù)制粘貼到了這個(gè)程序里!printf函數(shù)就是定義在了這個(gè)文件里面。我們可以這樣理解:
以上的程序就等價(jià)于下面的程序
main函數(shù)
我們不難看出,整段程序其實(shí)是一個(gè)定義函數(shù)的過(guò)程,我們定義了一個(gè)名字叫做main的函數(shù),這是什么意思?
C語(yǔ)言是從main函數(shù)開(kāi)始執(zhí)行的!也就是說(shuō),程序會(huì)先找到main函數(shù),然后從main函數(shù)一步步執(zhí)行,最后返回一個(gè)結(jié)果,這個(gè)結(jié)果就是整個(gè)程序的最后返回值
當(dāng)然這個(gè)例子是有錯(cuò)誤的,不過(guò)對(duì)于初學(xué)者來(lái)說(shuō),不用明白為什么要從main開(kāi)始執(zhí)行,也不用明白main被調(diào)用的具體過(guò)程,我們尚有很多其中沒(méi)有涉及到的領(lǐng)域,因此在這一筆記內(nèi)暫時(shí)還無(wú)法解釋。
現(xiàn)在只要知道,程序是從main函數(shù)開(kāi)始執(zhí)行的就行啦
結(jié)語(yǔ)
以上就是本文的全部?jī)?nèi)容,旨在初學(xué)者能夠?qū)程序有一個(gè)初步的認(rèn)知,從而更搞笑的進(jìn)行學(xué)習(xí)。
感謝閱覽,謝謝大家,如有幫助,還請(qǐng)點(diǎn)贊喔,這是對(duì)我最大的動(dòng)力!