康馨月 陜西工業(yè)職業(yè)技術(shù)學(xué)院
隨著我國(guó)教育事業(yè)的發(fā)展,許多的大學(xué)老師在進(jìn)行c語(yǔ)言授課的過(guò)程中都會(huì)遇到函數(shù)調(diào)用的問(wèn)題。函數(shù)調(diào)用的問(wèn)題對(duì)于學(xué)生來(lái)說(shuō)是比較難理解的一個(gè)問(wèn)題,如果讓學(xué)生來(lái)作答一道題目,在大多數(shù)情況下,學(xué)生會(huì)用其他的方法進(jìn)行相關(guān)的解答,但是如果說(shuō)用函數(shù)調(diào)用的方法來(lái)解決這個(gè)問(wèn)題,他們就會(huì)感覺(jué)無(wú)從下手,不知道從哪里開(kāi)始做起。發(fā)生這種情況并不是說(shuō)明這個(gè)函數(shù)問(wèn)題本身是很難解決的,而是學(xué)生對(duì)函數(shù)調(diào)用問(wèn)題不夠理解,從而導(dǎo)致了學(xué)生無(wú)法進(jìn)行解答。
c語(yǔ)言對(duì)于當(dāng)代大學(xué)生來(lái)說(shuō),并不是一個(gè)陌生的學(xué)科,但是c語(yǔ)言本身較為復(fù)雜,對(duì)于大學(xué)生來(lái)說(shuō),更是難以理解,而c語(yǔ)言程序中的基本構(gòu)件是函數(shù),每一個(gè)函數(shù)都有一定的功能。c語(yǔ)言中的函數(shù)在進(jìn)行使用之前,必須要進(jìn)行定義的工作,這個(gè)方法與變量是一樣的。在c語(yǔ)言這門(mén)學(xué)科中,引用函數(shù)所返回的值,或者是執(zhí)行函數(shù)中的代碼必須要通過(guò)函數(shù)的調(diào)用才能夠完成,函數(shù)的調(diào)用可以讓學(xué)生看,做成一種動(dòng)作,在動(dòng)作進(jìn)行實(shí)施的過(guò)程中,必須需要有主動(dòng)方和被動(dòng)方才能完成這個(gè)動(dòng)作,所以函數(shù)中就有主調(diào)函數(shù)和被調(diào)函數(shù)這兩種函數(shù),在主調(diào)函數(shù)代碼中,被動(dòng)函數(shù)的調(diào)用也是有相應(yīng)的規(guī)則的,主調(diào)函數(shù)代碼必須通過(guò)引用被調(diào)函數(shù)名,并加以必要的參數(shù)來(lái)調(diào)用被動(dòng)函數(shù)。[1]
在c語(yǔ)言中,函數(shù)的使用方法是十分重要的。當(dāng)代大學(xué)生來(lái)說(shuō),c語(yǔ)言是一個(gè)比較困難的學(xué)科的原因是因?yàn)閷W(xué)生在學(xué)習(xí)c語(yǔ)言的函數(shù)的過(guò)程中無(wú)法對(duì)函數(shù)進(jìn)行運(yùn)用,只是粗略的了解這個(gè)函數(shù)的概念和定義,并不能在實(shí)際的問(wèn)題中進(jìn)行函數(shù)的應(yīng)用。[2]在c語(yǔ)言中函數(shù)的參數(shù)主要適用于主調(diào)函數(shù)向被調(diào)函數(shù)進(jìn)行傳遞的一個(gè)數(shù)值,而且在人們對(duì)函數(shù)進(jìn)行定義的過(guò)程中,函數(shù)后面括號(hào)內(nèi)的參數(shù)被人們稱(chēng)作為形式參數(shù),要簡(jiǎn)便教學(xué)和算法形式參數(shù)后期也被稱(chēng)為形參。學(xué)生在運(yùn)用函數(shù)調(diào)用的過(guò)程中,函數(shù)名稱(chēng)后面的括號(hào)內(nèi)的參數(shù)被稱(chēng)為實(shí)際參數(shù),也就是人們平時(shí)所說(shuō)的實(shí)參。學(xué)生在運(yùn)用和學(xué)習(xí)函數(shù)調(diào)用這個(gè)函數(shù)算法時(shí),首先要做的就是把實(shí)際參數(shù)傳遞給形參,然后才能執(zhí)行其他的函數(shù)工作,或者是執(zhí)行函數(shù)體。在c語(yǔ)言的學(xué)習(xí)中,經(jīng)常會(huì)因?yàn)閰?shù)的類(lèi)型有所不同而導(dǎo)致的他的參數(shù)值的傳遞方法也大不相同,我們一般將這些傳遞方法分為值傳遞方式和地址傳遞方式這兩種方法。在學(xué)生學(xué)習(xí)c語(yǔ)言的過(guò)程時(shí),教師要注意培養(yǎng)學(xué)生對(duì)函數(shù)的使用防止學(xué)生只是學(xué)會(huì)了函數(shù)的概念,而不會(huì)進(jìn)行實(shí)際的應(yīng)用。
短期內(nèi)的運(yùn)行過(guò)程中是離不開(kāi)c語(yǔ)言程序的,而c語(yǔ)言編譯的系統(tǒng),主要是根據(jù)變量的類(lèi)型來(lái)進(jìn)行相關(guān)編制的工作,而內(nèi)應(yīng)的內(nèi)存單元也是根據(jù)量變的類(lèi)型來(lái)進(jìn)行分配的,內(nèi)存單元的主要作用是方便存放變量的主要內(nèi)容,每一個(gè)內(nèi)存區(qū)中的存儲(chǔ)單元都有自身的編號(hào),這就是我們平時(shí)所說(shuō)的地址,而我們平時(shí)所說(shuō)的指針變量,就是我們存放地址的變量,在我們進(jìn)行操作中的每種程序在內(nèi)存中的表現(xiàn)都是與內(nèi)存的單元格相對(duì)應(yīng)并且進(jìn)行讀寫(xiě)的操作。[3]當(dāng)一個(gè)普通的數(shù)據(jù)類(lèi)型,想要進(jìn)行變量或者將數(shù)組元素作為參數(shù)時(shí),都是屬于值傳遞的方法。如果參數(shù)是指針面料或者數(shù)組名稱(chēng)等等一系列與地址有關(guān)的量的時(shí)候,則是屬于地址傳遞方法。之間是有很大的不同的,其中值傳遞具有單向性,而地址傳遞它是雙向性的特點(diǎn),這兩種傳遞方式是大不相同的,但是許多的學(xué)生是無(wú)法理解,這兩種傳遞方式是因?yàn)槭裁床煌@也是內(nèi)存函數(shù)的重點(diǎn)和難點(diǎn)。老師在進(jìn)行內(nèi)存函數(shù)的講解時(shí)要通過(guò)將函數(shù)調(diào)用過(guò)程中的內(nèi)存的變化過(guò)程,進(jìn)行一系列的動(dòng)態(tài)展示,才能夠使學(xué)生更好的理解內(nèi)存概念,在函數(shù)調(diào)用中是如何進(jìn)行應(yīng)用的,所發(fā)生的問(wèn)題和難點(diǎn)也會(huì)迎刃而解。
如果想要學(xué)會(huì)應(yīng)用函數(shù),首先要做到的就是了解函數(shù)的定義和函數(shù)的基本格式,而函數(shù)的基本格式通常是由類(lèi)型標(biāo)識(shí)符以及函數(shù)名組成的,函數(shù)名稱(chēng)主要是形式參數(shù)列表,其中包括聲明部分和語(yǔ)句部分兩個(gè)部分。這種格式的定義函數(shù)被我們廣泛的稱(chēng)為有參函數(shù),這種參數(shù)是不同與形式參數(shù)列表中的參數(shù)的,參數(shù)形式列表中的參數(shù),被我們稱(chēng)為形參。還有一些參數(shù)的是無(wú)參函數(shù),無(wú)參函數(shù)是可以沒(méi)有形式參數(shù)列表的,但是這種無(wú)含參數(shù)的括號(hào)不能進(jìn)行省略。函數(shù)在進(jìn)行使用之前,必須進(jìn)行相關(guān)的聲明和定義,然后才能進(jìn)行使用。[4]
我們現(xiàn)在在c語(yǔ)言中所接觸的參數(shù)形式大多都是在函數(shù)名后面加上實(shí)參表列,實(shí)參表列需要用括號(hào)將其擴(kuò)起來(lái)。在c語(yǔ)言中,我們可以將函數(shù)分成三種調(diào)用方式,這三種調(diào)用方式主要是依據(jù)函數(shù)在程序中所出現(xiàn)的位置來(lái)進(jìn)行劃分的.首先是函數(shù)語(yǔ)句,函數(shù)語(yǔ)句主要是將函數(shù)調(diào)用作為一個(gè)詞語(yǔ),這種方式是不要求函數(shù)帶回執(zhí)的,例如打印圖形等等,這些都是只需要函數(shù)完成一定的操作就可以的。[5]第二個(gè)是函數(shù)的表達(dá)式,c語(yǔ)言中的函數(shù)是會(huì)出現(xiàn)在一個(gè)表達(dá)式當(dāng)中的,而這種表達(dá)是被人們廣泛的稱(chēng)作為函數(shù)的表達(dá)式,表達(dá)式主要是要求函數(shù)帶回一個(gè)確定的值來(lái)參加表達(dá)式的基本運(yùn)算的。第三種是函數(shù)的參數(shù),函數(shù)的參數(shù)經(jīng)常會(huì)用,作為一個(gè)函數(shù)的實(shí)際參數(shù),在運(yùn)算中也會(huì)起到很大的作用,需要學(xué)生進(jìn)行充分的了解。
壁紙傳遞作為c語(yǔ)言中函數(shù)傳遞比較重要的一項(xiàng),需要學(xué)生進(jìn)行較為充分的理解才能夠掌握好c語(yǔ)言中的函數(shù)傳遞。當(dāng)時(shí)參函數(shù)被定義之后,會(huì)有自己的地址,但是在主調(diào)函數(shù)中勸沒(méi)有給實(shí)際參數(shù)賦予任何的數(shù)值,但是我們可以抽象地將這種實(shí)際參數(shù)所擁有的地址來(lái)作為它自身的值,這個(gè)值也就是他的地址,可以被形式參數(shù)進(jìn)行接收,而形式參數(shù)就會(huì)具有相同的地址。[6]當(dāng)函數(shù)調(diào)用結(jié)束之后,形式參數(shù)就會(huì)釋放它所占用的內(nèi)存單元,而實(shí)參也會(huì)相應(yīng)的得到形式參數(shù)。除了地址可以用作函數(shù)的實(shí)際參數(shù)之外,數(shù)組名也可以用作為函數(shù)的實(shí)際參數(shù),在進(jìn)行函數(shù)的調(diào)用過(guò)程中,我們可以把實(shí)參數(shù)組所在的位置傳遞給形參組就可以使行參數(shù)組合實(shí)參數(shù)組共同的占用同一個(gè)儲(chǔ)存的區(qū)域,而對(duì)形式參數(shù)數(shù)組中的操作也就是對(duì)實(shí)際數(shù)組中對(duì)應(yīng)元素進(jìn)行的相關(guān)操作。c語(yǔ)言中的地址傳遞方式主要是可以將實(shí)際的參數(shù)地址,通過(guò)一定的方式和手段,傳遞給對(duì)應(yīng)的形式參數(shù),這樣就會(huì)使形式參數(shù)和實(shí)際參數(shù)所對(duì)應(yīng)的變量或數(shù)組占用同一個(gè)單元,而形式參數(shù)的變化就會(huì)引起實(shí)際參數(shù)數(shù)值的改變,接收同一地址的形式參數(shù)通常是指針變量或者數(shù)組名,實(shí)際參數(shù)是就是量變的地址。
c語(yǔ)言這一門(mén)學(xué)科對(duì)于我國(guó)的發(fā)展來(lái)說(shuō)是十分重要的,c語(yǔ)言中的函數(shù)調(diào)用對(duì)于整個(gè)學(xué)科來(lái)說(shuō)也是十分困難的,所以教育部門(mén)應(yīng)該將內(nèi)存的概念引入到函數(shù)應(yīng)用中去,可以讓學(xué)生通過(guò)更為直觀的圖示來(lái)理解整個(gè)c語(yǔ)言的知識(shí)。
[1]梁鑫:關(guān)于C語(yǔ)言教學(xué)中函數(shù)調(diào)用的研究及應(yīng)對(duì)方法[J]。新華網(wǎng),2014-08-14:31-32.
[2]劉琦:如何看后C語(yǔ)言教學(xué)中函數(shù)調(diào)用的問(wèn)題[J]. 赤峰學(xué)院學(xué)報(bào)(自然科學(xué)版). 2015(10):51-52.
[3]桑成志:C語(yǔ)言教學(xué)中函數(shù)調(diào)用問(wèn)題探討[J].大連民族大學(xué)學(xué)報(bào).2015(5):10-11.
[4]范立國(guó):C語(yǔ)言教學(xué)中函數(shù)調(diào)用問(wèn)題分析[J].中國(guó)人民大學(xué)學(xué)報(bào).2014:24-25.
[5]李大昌:C語(yǔ)言教學(xué)中函數(shù)調(diào)用問(wèn)題研究評(píng)價(jià)[J].大連海事大學(xué)學(xué)報(bào).2016(5):6-8.
[6]楊國(guó)森:C語(yǔ)言教學(xué)中函數(shù)調(diào)用問(wèn)題方案[J].中南民族大學(xué)學(xué)報(bào).2014(5):17-18