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