前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇函數(shù)的表示法范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
(新疆師范大學教育科學學院,新疆烏魯木齊830054)
摘要:本文通過熟練哈一漢雙語者參與一個互相描述圖片的對話過程,即同盟者腳本范式的方法,發(fā)現(xiàn)說話者在聽到一個哈薩克語句子后,更傾向于用相同句型的漢語句子去描述下一張圖片在主動句和被動句啟動條件下,都出現(xiàn)了跨語言的句法啟動效應,并且當句子動詞具有翻譯對等性時,啟動效應顯著提高
關鍵詞 :哈一漢雙語者;句法表征;跨語言句法啟動;翻譯對等性
中圖分類號:H215 文獻標識碼:A 文章編號:1671-1580(2014) 10-0122-02
人們在日常談話或者寫作過程中,會傾向于使用之前對話者使用的句子類型,或者之前看到的句子類型,這種現(xiàn)象稱為句法啟動。這種現(xiàn)象最早由Bock在試驗中發(fā)現(xiàn),后來不僅在單語者中發(fā)現(xiàn)此類現(xiàn)象,同樣在雙語者中也發(fā)現(xiàn)跨句法啟動效應。
在雙語句子研究中,一個重要的問題是,雙語者是獨立地存儲句法信息,還是共同存儲?如果句法信息是共同存儲,那么,兩種語言中相同的規(guī)則只表征一次,這種存儲方式的優(yōu)勢是可以減少冗余,只在必要時存儲語言特異的信息,使雙語者對話時不用改變信息存儲系統(tǒng),在兩種語言間切換更高效;如果句法信息是獨立存儲,當雙語者在一個時期只是用一種語言的時候,擁有獨立的語言系統(tǒng)會產生更有效的加工過程,雙語者可以直接聚焦在相關語言,因此,減少搜索句法結構的數(shù)量。
目前關于雙語句法表征的研究大多來自國外,母語與二語間言語相似,且同屬同一語系。本次實驗選取分屬不同語系的熟練哈一漢雙語者為被試,考察熟練哈,漢雙語者的跨語言句法啟動現(xiàn)象。
一、研究方法
(一)被試
共選取12名熟練哈一漢雙語者為被試,劃分標準是MHK(中國少數(shù)民族漢語水平等級考試)三級甲等以上(包括三級甲等)為熟練雙語者;以及在HSK(中國漢語水平考試)向MHK過渡前,已取得HSK成績7級以上(包括7級)為熟練雙語者。
(二)材料
實驗材料為兩套30張描述日常動作的圖片,并且圖片描述的動作都為日常生活中常見的場景。每一套圖片包含20張描述及物動作的圖片組成關鍵材料,描述的動作既可以用主動句表達,也可以用被動句表達。20張關鍵材料中,每種啟動條件下,啟動句與目標句詞匯有翻譯對等關系與不等關系的材料各占一半,剩余10張為填充材料,描述非及物動作的圖片。每張圖片的底部印有一個動詞,要求被試在描述圖片時使用這個動詞。兩套圖片分別命名為“同盟者描述集合”和“真被試描述集合”。同盟者的圖片其實是念事先準備好的句子(啟動句)。將關鍵材料隨機化后,每兩個關鍵材料中穿插一個填充材料。
(三)實驗程序
實驗采用“同盟者腳本范式”,實驗開始前告訴真被試與同盟者(假被試),這個實驗是調查人們在不能看到對方時的交流情況,真被試并不知道假被試是實驗助手。他們的任務是輪流向對方描述“描述圖片盒”中的圖片。每次開始保證假被試在先,即保證啟動句在前。實驗前,用簡短的時間描述3張圖片進行練習,實驗過程中的所有對話用數(shù)字錄音筆記錄。
二、實驗結果
通過錄音內容抄錄被試產生的目標句,對句子進行評定,確定為“主動句”、“被動句”和“其他句式”三種。表1列出了本實驗中不同啟動條件下和不同詞匯類型下產生的句子百分比。
根據本研究考察的內容,先對所有數(shù)據進行反正弦轉換,分別對不同啟動條件下的反應數(shù)據進行統(tǒng)計檢驗。在啟動條件為主動句時,對被試產生的主動句百分比和被動句百分比進行配對T檢驗,結果顯示,兩者差異極其顯著,t= 11. 774,df= 11,P<0. 01,說明哈一漢主動句句法啟動實驗出現(xiàn)跨語言啟動效應。同樣,在啟動條件為被動句時,仍然出現(xiàn)跨語言句法啟動效應,t=4. 180,df= 11,P<0.01。主動句條件下,對關鍵動詞有翻譯對等的條件下,和關鍵動詞不對等的條件進行配對T檢驗,發(fā)現(xiàn)兩者之間差異極其顯著,t=3. 230,df= 11,P<0.01;在被動句條件下,詞匯相同和詞匯不同條件間差異同樣顯著,t=2. 835,df=11,P<0.05。說明在兩種啟動條件下,L1L2方向上的啟動量都顯著增加。
三、結果討論
通過實驗結果我們發(fā)現(xiàn),熟練哈漢雙語者在不同類型的啟動條件下都在L1L2方向上出現(xiàn)跨語言句法啟動效應,說明熟練哈一漢雙語者的兩種語言的句法是共享的。Hartsuiker等提出的雙語者詞匯句法表征模型解釋了這種啟動效應。當參與者聽到一個哈薩克語被動句時,動詞詞匯的表征被激活,這個動詞與他的語言結點、類別結點、非特定語言的組合結點相聯(lián)結,所有的聯(lián)結都被激活。當接下來參與者被要求產生一個包含及物動詞的漢語目標句時,因為主動句型沒有從啟動句中受到激活,而被動句型組合結點被激活,產生殘余激活作用,使被試更傾向于選擇被動結構。同樣的,當啟動句為主動句時,參與者由于殘余的激活作用,更傾向于使用主動句型。
另外,當啟動句與目標句的關鍵動詞存在對等翻譯詞時,兩種啟動條件下,在L1L2方向上的啟動量顯著增加,出現(xiàn)翻譯促進效應。這是因為,根據詞匯句法表征模型,動詞不一致時的句法啟動,歸因于不同動詞詞條所共有的組合結點的預先激活。而當動詞一致時,由于除了組合結點的預先激活外,還有動詞詞條結點和組合結點之間聯(lián)結的預先激活,使句法啟動效應提高,從而顯著提高啟動量。
漢語句型為SVO型,而哈薩克語句型為SOV型,兩種語言句子詞序不同,在本研究中仍然出現(xiàn)了跨語言句法啟動,這與Shin等人的研究結果一致。
1.使學生理解數(shù)列的概念,了解數(shù)列通項公式的意義,了解遞推公式是給出數(shù)列的一種方法,并能根據遞推公式寫出數(shù)列的前幾項.
(1)理解數(shù)列是按一定順序排成的一列數(shù),其每一項是由其項數(shù)唯一確定的.
(2)了解數(shù)列的各種表示方法,理解通項公式是數(shù)列第項與項數(shù)的關系式,能根據通項公式寫出數(shù)列的前幾項,并能根據給出的一個數(shù)列的前幾項寫出該數(shù)列的一個通項公式.
(3)已知一個數(shù)列的遞推公式及前若干項,便確定了數(shù)列,能用代入法寫出數(shù)列的前幾項.
2.通過對一列數(shù)的觀察、歸納,寫出符合條件的一個通項公式,培養(yǎng)學生的觀察能力和抽象概括能力.
3.通過由求的過程,培養(yǎng)學生嚴謹?shù)目茖W態(tài)度及良好的思維習慣.
教學建議
(1)為激發(fā)學生學習數(shù)列的興趣,體會數(shù)列知識在實際生活中的作用,可由實際問題引入,從中抽象出數(shù)列要研究的問題,使學生對所要研究的內容心中有數(shù),如書中所給的例子,還有物品堆放個數(shù)的計算等.
(2)數(shù)列中蘊含的函數(shù)思想是研究數(shù)列的指導思想,應及早引導學生發(fā)現(xiàn)數(shù)列與函數(shù)的關系.在教學中強調數(shù)列的項是按一定順序排列的,“次序”便是函數(shù)的自變量,相同的數(shù)組成的數(shù)列,次序不同則就是不同的數(shù)列.函數(shù)表示法有列表法、圖象法、解析式法,類似地,數(shù)列就有列舉法、圖示法、通項公式法.由于數(shù)列的自變量為正整數(shù),于是就有可能相鄰的兩項(或幾項)有關系,從而數(shù)列就有其特殊的表示法——遞推公式法.
(3)由數(shù)列的通項公式寫出數(shù)列的前幾項是簡單的代入法,教師應精心設計例題,使這一例題為寫通項公式作一些準備,尤其是對程度差的學生,應多舉幾個例子,讓學生觀察歸納通項公式與各項的結構關系,盡量為寫通項公式提供幫助.
(4)由數(shù)列的前幾項寫出數(shù)列的一個通項公式使學生學習中的一個難點,要幫助學生分析各項中的結構特征(整式,分式,遞增,遞減,擺動等),由學生歸納一些規(guī)律性的結論,如正負相間用來調整等.如果學生一時不能寫出通項公式,可讓學生依據前幾項的規(guī)律,猜想該數(shù)列的下一項或下幾項的值,以便尋求項與項數(shù)的關系.
(5)對每個數(shù)列都有求和問題,所以在本節(jié)課應補充數(shù)列前項和的概念,用表示的問題是重點問題,可先提出一個具體問題讓學生分析與的關系,再由特殊到一般,研究其一般規(guī)律,并給出嚴格的推理證明(強調的表達式是分段的);之后再到特殊問題的解決,舉例時要兼顧結果可合并及不可合并的情況.
(6)給出一些簡單數(shù)列的通項公式,可以求其最大項或最小項,又是函數(shù)思想與方法的體現(xiàn),對程度好的學生應提出這一問題,學生運用函數(shù)知識是可以解決的.
教學設計示例
數(shù)列的概念
教學目標
1.通過教學使學生理解數(shù)列的概念,了解數(shù)列的表示法,能夠根據通項公式寫出數(shù)列的項.
2.通過數(shù)列定義的歸納概括,初步培養(yǎng)學生的觀察、抽象概括能力;滲透函數(shù)思想.
3.通過有關數(shù)列實際應用的介紹,激發(fā)學生學習研究數(shù)列的積極性.
教學重點,難點
教學重點是數(shù)列的定義的歸納與認識;教學難點是數(shù)列與函數(shù)的聯(lián)系與區(qū)別.
教學用具:電腦,課件(媒體資料),投影儀,幻燈片
教學方法:講授法為主
教學過程
一.揭示課題
今天開始我們研究一個新課題.
先舉一個生活中的例子:場地上堆放了一些圓鋼,最底下的一層有100根,在其上一層(稱作第二層)碼放了99根,第三層碼放了98根,依此類推,問:最多可放多少層?第57層有多少根?從第1層到第57層一共有多少根?我們不能滿足于一層層的去數(shù),而是要但求如何去研究,找出一般規(guī)律.實際上我們要研究的是這樣的一列數(shù)
(板書)象這樣排好隊的數(shù)就是我們的研究對象——數(shù)列.
(板書)第三章數(shù)列
(一)數(shù)列的概念
二.講解新課
要研究數(shù)列先要知道何為數(shù)列,即先要給數(shù)列下定義,為幫助同學概括出數(shù)列的定義,再給出幾列數(shù):
(幻燈片)①
自然數(shù)排成一列數(shù):
②
3個1排成一列:
③
無數(shù)個1排成一列:
④
的不足近似值,分別近似到排列起來:
⑤
正整數(shù)的倒數(shù)排成一列數(shù):
⑥
函數(shù)當依次取時得到一列數(shù):
⑦
函數(shù)當依次取時得到一列數(shù):
⑧
請學生觀察8列數(shù),說明每列數(shù)就是一個數(shù)列,數(shù)列中的每個數(shù)都有自己的特定的位置,這樣數(shù)列就是按一定順序排成的一列數(shù).
(板書)1.數(shù)列的定義:按一定次序排成的一列數(shù)叫做數(shù)列.
為表述方便給出幾個名稱:項,項數(shù),首項(以幻燈片的形式給出).以上述八個數(shù)列為例,讓學生練某一個數(shù)列的首項是多少,第二項是多少,指出某一個數(shù)列的一些項的項數(shù).
由此可以看出,給定一個數(shù)列,應能夠指明第一項是多少,第二項是多少,……,每一項都是確定的,即指明項數(shù),對應的項就確定.所以數(shù)列中的每一項與其項數(shù)有著對應關系,這與我們學過的函數(shù)有密切關系.
(板書)2.數(shù)列與函數(shù)的關系
數(shù)列可以看作特殊的函數(shù),項數(shù)是其自變量,項是項數(shù)所對應的函數(shù)值,數(shù)列的定義域是正整數(shù)集,或是正整數(shù)集的有限子集.
于是我們研究數(shù)列就可借用函數(shù)的研究方法,用函數(shù)的觀點看待數(shù)列.
遇到數(shù)學概念不單要下定義,還要給其數(shù)學表示,以便研究與交流,下面探討數(shù)列的表示法.
(板書)3.數(shù)列的表示法
數(shù)列可看作特殊的函數(shù),其表示也應與函數(shù)的表示法有聯(lián)系,首先請學生回憶函數(shù)的表示法:列表法,圖象法,解析式法.相對于列表法表示一個函數(shù),數(shù)列有這樣的表示法:用表示第一項,用表示第一項,……,用表示第項,依次寫出成為
(板書)(1)列舉法
.(如幻燈片上的例子)簡記為.
一個函數(shù)的直觀形式是其圖象,我們也可用圖形表示一個數(shù)列,把它稱作圖示法.
(板書)(2)圖示法
啟發(fā)學生仿照函數(shù)圖象的畫法畫數(shù)列的圖形.具體方法是以項數(shù)為橫坐標,相應的項為縱坐標,即以為坐標在平面直角坐標系中做出點(以前面提到的數(shù)列為例,做出一個數(shù)列的圖象),所得的數(shù)列的圖形是一群孤立的點,因為橫坐標為正整數(shù),所以這些點都在軸的右側,而點的個數(shù)取決于數(shù)列的項數(shù).從圖象中可以直觀地看到數(shù)列的項隨項數(shù)由小到大變化而變化的趨勢.
有些函數(shù)可以用解析式來表示,解析式反映了一個函數(shù)的函數(shù)值與自變量之間的數(shù)量關系,類似地有一些數(shù)列的項能用其項數(shù)的函數(shù)式表示出來,即,這個函數(shù)式叫做數(shù)列的通項公式.
(板書)(3)通項公式法
如數(shù)列的通項公式為;
的通項公式為;
的通項公式為;
數(shù)列的通項公式具有雙重身份,它表示了數(shù)列的第項,又是這個數(shù)列中所有各項的一般表示.通項公式反映了一個數(shù)列項與項數(shù)的函數(shù)關系,給了數(shù)列的通項公式,這個數(shù)列便確定了,代入項數(shù)就可求出數(shù)列的每一項.
例如,數(shù)列的通項公式,則.
值得注意的是,正如一個函數(shù)未必能用解析式表示一樣,不是所有的數(shù)列都有通項公式,即便有通項公式,通項公式也未必唯一.
除了以上三種表示法,某些數(shù)列相鄰的兩項(或幾項)有關系,這個關系用一個公式來表示,叫做遞推公式.
(板書)(4)遞推公式法
如前面所舉的鋼管的例子,第層鋼管數(shù)與第層鋼管數(shù)的關系是,再給定,便可依次求出各項.再如數(shù)列中,,這個數(shù)列就是.
像這樣,如果已知數(shù)列的第1項(或前幾項),且任一項與它的前一項(或前幾項)間的關系用一個公式來表示,這個公式叫做這個數(shù)列的遞推公式.遞推公式是數(shù)列所特有的表示法,它包含兩個部分,一是遞推關系,一是初始條件,二者缺一不可.
可由學生舉例,以檢驗學生是否理解.
三.小結
1.數(shù)列的概念
2.數(shù)列的四種表示
四.作業(yè)略
五.板書設計
數(shù)列
(一)數(shù)列的概念涉及的數(shù)列及表示
1.數(shù)列的定義
2.數(shù)列與函數(shù)的關系
3.數(shù)列的表示法
(1)列舉法
(2)圖示法
(3)通項公式法
(4)遞推公式法
探究活動
關鍵詞:高中數(shù)學;函數(shù);難點;對策
函數(shù)在高中數(shù)學教材中占有很大比重,函數(shù)與方程、不等式、數(shù)列等函數(shù)內容貫穿高中數(shù)學教學的始終。隨著新課程改革的不斷推進,在高中數(shù)學教學中,對函數(shù)內容的教學也提高了新的教學要求和標準,很多學生由于在初中階段沒有打好數(shù)學基礎,數(shù)學學習能力較低,加之對知識的理解速度慢,也增加了函數(shù)教學的難度,影響到學生函數(shù)學習的質量。針對于此種情況,在實際的教學中,教師應對函數(shù)教學的難點進行分析,并且采取針對性的教學策略,確保學生函數(shù)學習的質量,促進高中數(shù)學函數(shù)教學的順利進行和順利完成。
一、高中數(shù)學函數(shù)教學的難點分析
通過對高中數(shù)學函數(shù)教學的實際情況分析,其存在著諸多的教學難點,具體包括如下幾個方面。①函數(shù)知識非常抽象,像,在實際的教學中,學生對于指數(shù)函數(shù)、對數(shù)函數(shù)、冪函數(shù)等知識點完全無法在腦海里形象化,而學生如果采取死記硬背的方式記憶和學習,勢必會影響到數(shù)學學習的效率和質量,對學生的長遠學習非常不利。②函數(shù)的表達方式多樣化。函數(shù)可以利用圖像、不等式、區(qū)間或者是集合等表示,導致學生在學習的過程中,無法全面的把握函數(shù)的表現(xiàn)方式[1]。③函數(shù)符號較多,記憶難度大。例如,在函數(shù)概念教學中,其涉及到10多種符號,每個符號都表達著不同的函數(shù),而學生在記憶的過程中,很容易將函數(shù)符號弄混,影響到學生學習的效率。函數(shù)知識所包含的內容較多,信息量較大,而且大都比較抽象,學生理解起來有一定的難度。上述難點的存在,勢必會影響到高中函數(shù)教學的質量,對學生的函數(shù)學習造成諸多的阻礙,影響到學生函數(shù)學習的有效性。因此,教師應結合函數(shù)教學的難點,采取有效的策略實現(xiàn)學生函數(shù)學習水平的提高,促進學生函數(shù)學習上不斷的進步[2]。
二、教學對策分析
(一)將抽象的函數(shù)知識形象化
鑒于高中函數(shù)知識較為抽象的問題,教師應采取有效的措施將抽象的函數(shù)知識形象化。例如,教師可以將抽象的函數(shù)利用圖像表示出來,將難以用語言表達的函數(shù)思維通過圖像直觀的表達出來,這樣一來,能夠將函數(shù)知識形象化,從而也能夠更好地體現(xiàn)函數(shù)的性質[3]。例如,x∈R,f(x)是y=2-x2,y=x 是這兩個函數(shù)中的較小者,則f(x)的最大值為?在此道題中,教師可以利用學生通過函數(shù)圖像討論參數(shù)的范圍、函數(shù)在各個區(qū)間的意義等,這比教師單純的利用公式進行解答相比,函數(shù)圖像更加直觀、更加形象化,對學生的函數(shù)學習非常有利。
(二)利用多媒體展示函數(shù)的各種表現(xiàn)方式
在高中函數(shù)教學中,由于函數(shù)的表現(xiàn)方式較多,學生學習難度較大,教師可以利用多媒體展示多樣化的函數(shù)表現(xiàn)方式,并且對其進行科學的整理和歸納,能夠加快學生的理解速度,提高學生函數(shù)學習的效率[4]。例如,在指數(shù)函數(shù)、對數(shù)函數(shù)、三角函數(shù)的教學中,教師可以將上述三類函數(shù)進行對比教學,利用多媒體將指數(shù)函數(shù)、對數(shù)函數(shù)、三角函數(shù)的不等式表示法、集合表示法、圖像表示法、區(qū)間表示法依次列出,并利用多媒體進行動態(tài)展示,使學生了解到三種函數(shù)各種表示方法之間的共同點及異同點,通過此種方式,能夠使學生全面的掌握函數(shù)的多種表現(xiàn)方式,也能夠避免學生出現(xiàn)混淆,有助于提高學生函數(shù)學習水平,促進學生長遠學習及長遠發(fā)展。
(三)尋找函數(shù)符號記憶規(guī)律,提高學生的記憶效果
由于高中函數(shù)中存在著很多的函數(shù)符號,而這些函數(shù)符號較為相似,容易被混淆,影響到學生記憶的效果。因此,在高中函數(shù)教學中,教師應幫助學生尋找函數(shù)符號的記憶規(guī)律,使學生能夠更快、更高效的記憶函數(shù)符號,提高學生函數(shù)學習的效果[5]。例如:int(x)、fix(x)、log(x)、sin(x)、tan(x)等等,各種符號之間雖然存在著很大的差異,但是也具有很多的相同點,教師可以引導學生利用英文字母及各種符號的內涵進行記憶,通過此種方式,能夠避免學生混淆,確保學生行數(shù)學習的質量。另外,學生理解函數(shù)符號的主要方式就是概念,但是,概念枯澀難懂,學生通過分析概念無法有效的區(qū)分各種符號,教師應引導學生去分析概念中的變量及相關條件之間的關系,通過分析上述兩個方面,能夠更好地區(qū)分概念中的函數(shù)符號,進而實現(xiàn)良好的學習效果,促進學生函數(shù)學習水平的大幅度提高。
在高中數(shù)學函數(shù)教學中,由于多種因素的共同作用,導致函數(shù)教學中存在著諸多的教學難點,影響到學生函數(shù)學習的質量,對學生的高考也非常不利。針對于此種情況,教師應對高中數(shù)學函數(shù)教學中的難點進行細致的分析,并且采取針對性的教學對策,以更好地突破教學難點,提高函數(shù)教學的質量,從而促進學生函數(shù)學習上不斷的進步。
參考文獻:
[1]鄭雄鷹.論高中數(shù)學函數(shù)教學的方法[J].數(shù)學學習與研究, 2013(21).
[2]徐志強.突破難點 多媒體助力高中數(shù)學函數(shù)教學[J].中國教育技術裝備,2013(17).
[3]楊美.優(yōu)化函數(shù)教學模式,注重高中數(shù)學基礎教學[J].語數(shù)外學習(數(shù)學教育),2013(01).
正弦交流電的三種表示方法:
1、解析法:又稱三角函數(shù)表示法,是正弦交流電的基本表示方法,它就是用三角函數(shù)式來表示正弦交流電隨時間變化的關系;
2、曲線法:是利用三角函數(shù)式求出個時刻的相應角和對應的瞬時值,然后在平面直角坐標系中畫出正弦曲線,又叫曲線圖或波形圖;
3、旋轉矢量法:在數(shù)學中,既有大小又有方向的量,叫做矢量,而當一個矢量,以角速度繞點作反時針方向旋轉時,則稱它為旋轉矢量。
(來源:文章屋網 )
關鍵詞:值傳遞;地址傳遞;局部變量;圖示法
中圖分類號:TP311 文獻標識碼:B 文章編號:1004373X(2008)1608903
Discussion of Parameter Delivery Law Based on C Language Function
YANG Zhanhai,XUE Suqin,ZHANG Xiaoguang
(Computer Center,Yan′an Unversity,Yan′an,716000,China)
Abstract:The function is basical unit of C language,the function parameter delivery adopts transfer way of oneway value.While guiding principle is the function parameter,being in progress is address delivery,as before,address delivery is oneway value transfer way,is really not twoway delivery way.Using relevant part variable knowledge,the various parameter using diagrammatic representation is discussed.By discussion,parameter′s dilivery law of the function is proposed.Graphic analysis method in culture is a kind of brandnew analysis implement,has certain extension value.
Keywords:value delivery;address delivery;part variable;diagrammatic representation metrod
學習和使用C語言,都會遇到函數(shù)的參數(shù)傳遞問題,在編寫的一些程序里,主調函數(shù)調用了被調用函數(shù)后,主調函數(shù)中的有些變量發(fā)生了變化,尤其是在使用指針的情況下更是如此,基于此點,有人誤以為,指針作為函數(shù)參數(shù)時的地址傳遞是雙向的傳遞方式。
本文以局部變量的概念為基石,采用一種內存圖示分析方法。使用該方法,探討了函數(shù)的各種參數(shù)傳遞形式,對參數(shù)的傳遞規(guī)律進行深刻的總結。
1 自動局部變量
自動局部變量是函數(shù)內部或復合語句內部定義的auto類別的變量,該變量在內存的動態(tài)區(qū)中開辟,作用范圍僅限于函數(shù)內部或復合語句內部,只有函數(shù)或復合語句能夠識別自己的自動局部變量,即自動局部變量對于其他函數(shù)而言是不可知的、不可見的。
另外,自動局部變量的生存期也是非常短暫的,當其所在函數(shù)被調用時,分配內存單元,調用結束后,釋放變量。在下次調用函數(shù)時,重新分配內存單元。
形式參數(shù)屬于局部變量,作用范圍僅在所定義的函數(shù)中,形參的變化不能被別的函數(shù)可見,包括主調函數(shù)也不可見。若形式參數(shù)為自動局部變量,調用結束后根本就不存在了,更不會被主調函數(shù)可見。
按照上面的分析,形參絕不可能把自己調用到主調函數(shù)里的,所以,函數(shù)的參數(shù)的傳遞應該是單向的。
既然局部變量互不干擾,為簡單起見,可以把主調函數(shù)和被調用函數(shù)的變量畫在不同的區(qū)域以示區(qū)別。為此,特約定,畫內存圖時以水平線為分界,水平線以下為主調函數(shù)的局部變量,水平線以上為被調用函數(shù)的局部變量。
下面,便應用以上理論和畫圖的方法分析幾個典型的程序,用以研究函數(shù)的參數(shù)傳遞規(guī)律。
2 不涉及指針的參數(shù)傳遞
有如下程序,用于交換2個變量的值。交換的思想是把實參變量傳遞給形參變量后,交換形參變量的值,希望帶動2個實參變量的值的改變。
void fun(int a,int b)
{ int t; t = a; a = b; b = t;}
void main(viod)
{ int a = 6,b = 9; fun(a,b); printf ("%d,%d\\n",a,b);}
但程序的執(zhí)行結果并未實現(xiàn)實參變量值的交換,這說明形參的變化不能影響實參的值,傳遞是單向值傳遞的。
下面,便用圖示法進行分析探討。
主程序執(zhí)行后,變量及其值如圖1(a)所示。調用函數(shù)fun后,分配的變量及其值如圖1(b)所示,此時形參從實參處獲得了對應的值。
函數(shù)fun中的變量交換,是局部變量的交換,交換結果如圖2(a)所示。函數(shù)fun調用結束后,釋放其所申請的局部變量,結果如圖2(b)所示。
顯而易見,形參的變化是被調用函數(shù)內部的變化,根本不涉及實參的變化,值的單向傳遞得到肯定。
3 涉及指針的參數(shù)傳遞
3.1 指針形參的改變
下面的程序采用指針參數(shù),函數(shù)fun進行2個指針參數(shù)變量的值的交換。
void fun(int *p,int *q)
{ int *t; t=p; p=q; q=t;}
void main(void)
{ int a=6,b=9,*p=&a,*q=&b;
fun(p,q); printf ("%d,%d\\n",a,b);}
主程序執(zhí)行后,變量及其值如圖3(a)所示,實參指針p的值為&a,表示指向變量a,實參指針q的值為&b,表示指向變量b。調用函數(shù)fun后,分配的變量及其值如圖3(b)所示,此時形參從實參處獲得了對應的值,其中形參指針p的值為&a,表示指向主調函數(shù)中的變量a,實參指針q的值為&b,表示指向主調函數(shù)中的變量b。
函數(shù)fun中的p和q交換,是局部變量的交換,交換結果如圖4(a)所示,p指向了b,q指向了a。函數(shù)fun調用結束后,釋放其所申請的局部變量,結果如圖4(b)所示。
主函數(shù)中p和q是實參,而調用函數(shù)fun后,p和q沒有發(fā)生改變,這說明形參的變化沒有改變實參的指向,即沒有改變實參的值,指針作參數(shù)時,值的單向傳遞得到了肯定。另外,形參指針p和q曾分別指向主函數(shù)中a和b,而主函數(shù)中a和b也沒有發(fā)生改變,這說明,僅改變形參指針的值,不會影響主調函數(shù)中其他變量的值,不能改變其指向變量的值。
3.2 指針形參指向變量的改變
下面的程序采用指針參數(shù),函數(shù)fun進行2個指針參數(shù)指向變量的值的交換。
void fun(int *p,int *q)
{ int t; t=*p; *p=*q; *q=t;}
void main(void)
{ int a=6,b=9,*p=&a,*q=&b;
fun(p,q); printf ("%d,%d\\n",a,b);}
主程序執(zhí)行后,變量及其值如圖5(a)所示,實參指針p指向變量a,實參指針q指向變量b。調用函數(shù)fun后,分配的變量及其值如圖5(b)所示,此時形參從實參處獲得對應的值,其中形參指針p指向主調函數(shù)中的變量a,實參指針q指向主調函數(shù)中的變量b。
函數(shù)fun中的*p和*q交換,就是主調函數(shù)中的變量a和b的交換,交換結果如圖6(a)所示,主調函數(shù)中的變量a和b完成了交換。函數(shù)fun調用結束后,釋放其所申請的局部變量,結果如圖6(b)所示。
通過指針形參可以改變其指向變量的值,變量可以是主調函數(shù)中變量,但這些變量并不是實參指針變量,實參的值沒有發(fā)生改變。所以通過指針形參可以改變其指向變量的值并不違背參數(shù)的單向傳遞規(guī)律。
3.3 數(shù)組名作為函數(shù)的參數(shù)
數(shù)組名是地址常量,代表函數(shù)的起始地址,即數(shù)組名是指針類型常量,指向了數(shù)組的起始位置。按照參數(shù)的類型一致原則,形參就應該為指針類型變量,該變量得到實參的傳遞后,指針指向數(shù)組的起始位置。
故數(shù)組名作為函數(shù)的參數(shù)本質是指針作參數(shù)的情形,實際上就是圖5(a),(b)描述的情形。形參指針的變化不會改變數(shù)組的初始位置,不會改變數(shù)組名地址常量,指針參數(shù)之間的傳遞遵循單向的值傳遞規(guī)律。形參指針指向的變量就是數(shù)組的內存單元,通過形參指針指向的變量的改變可以達到改變數(shù)組元素值的目標。
4 結 語
C語言函數(shù)參數(shù)的傳遞規(guī)律是單向的傳遞規(guī)律,不論參數(shù)是否是指針,主調函數(shù)的實參是不會改變的。能夠改變的只能是指針指向的變量的改變,在數(shù)組中把這種指針指向的變量的特性稱為共享內存單元。指針指向的變量并不是作為實數(shù)的變量,而是其他的變量,實參也指向該變量,指向變量的改變并等價于實參的改變,地址傳遞并不違背“值傳遞”規(guī)律。
以局部變量的概念為基石,采用內存圖示分析方法,是分析和研究參數(shù)傳遞問題的一種新思路、新方法。
參 考 文 獻
[1]古麗孜拉?安尼瓦爾.C語言函數(shù)參數(shù)傳遞的幾個問題[J].伊犁師范學院學報,2004(3):7374.
[2]吳麗賢.C語言中多維數(shù)組指針和遞歸的教學實踐[J].電腦知識與技術:學術交流,2007(2):462,464.
[3]張艷華.C語言函數(shù)形參與實參之間的數(shù)據傳遞[J].內江科技,2007(9):80.
[4][美] Herbert Schildt.最新C語言精華\.3版.王子恢,譯.北京:電子工業(yè)出版社,1997.
[5]譚浩強.C程序設計\.3版.北京:清華大學出版社,2005.