999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語(yǔ)言函數(shù)參數(shù)傳遞規(guī)律

2012-04-12 00:00:00趙娟樊超
現(xiàn)代電子技術(shù) 2012年4期

摘要:C語(yǔ)言的模塊設(shè)計(jì)主要是通過(guò)函數(shù)實(shí)現(xiàn)的,函數(shù)間信息的傳遞主要是通過(guò)參數(shù)實(shí)現(xiàn)的。函數(shù)的參數(shù)傳遞包括傳值和傳址。為了區(qū)別兩種傳遞方式的不同,采用實(shí)例和圖示兩種方法,列舉了變量、數(shù)組名、指針作參數(shù)的實(shí)例,通過(guò)比較函數(shù)調(diào)用后形參和實(shí)參的變化,總結(jié)出函數(shù)調(diào)用時(shí)參數(shù)傳遞的兩種規(guī)律,即基類(lèi)型變量、數(shù)組元素、結(jié)構(gòu)體變量作參數(shù)時(shí)是傳值,也就是單向的值傳遞;數(shù)組名、指針作參數(shù)時(shí)是傳址,也就是共享同一個(gè)地址。

關(guān)鍵詞:傳值; 傳址; C語(yǔ)言函數(shù); 地址共享

中圖分類(lèi)號(hào):TN91134; TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1004373X(2012)04005502

Parameter delivery law of C language function

ZHAO Juan1, FAN Chao2

(1. North Institute of Information Engineering, Xi’an Technological University, Xi’an 710025, China;

2. Shaanxi Youth Vocational College, Xi’an 710068, China)

Abstract: C language module design is implemented mainly through the function. The information between the functions is delivered by parameters. The parameter delivery of the function includes the delivery value and delivery address. In order to distinguish the difference of the two modes, two methods of examples and illustrations are adopted. The instances which takes variable, array name and pointer as parameters are listed. By comparing the variation of formal parameter and actual parameter after function call, two laws of the parameter delivery, while the function was called, were summed up: the base type variable, array element and structure variables as parameters are passed by value, that is, they deliver information in one way; the array name and pointer as parameters are passed by address, that is, they share the same address.

Keywords: delivery value; delivery address; C language function; address sharing

收稿日期:20110926在程序設(shè)計(jì)中常采用模塊設(shè)計(jì)方法,實(shí)際上所謂模塊設(shè)計(jì)的思想是一種“分而治之”的思想,把一個(gè)大任務(wù)分為若干個(gè)子任務(wù),這樣每一個(gè)子任務(wù)就相對(duì)簡(jiǎn)單了。程序中的子任務(wù)在C語(yǔ)言中通常是用函數(shù)來(lái)實(shí)現(xiàn)的。通過(guò)函數(shù)間的相互調(diào)用來(lái)完成程序的主要任務(wù)。參數(shù)是實(shí)現(xiàn)函數(shù)間信息傳遞的主要通道,因此掌握參數(shù)的傳遞方式,把握函數(shù)間的傳遞規(guī)律是學(xué)習(xí)C語(yǔ)言的關(guān)鍵。

1參數(shù)的傳遞方式

C語(yǔ)言函數(shù)的參數(shù)傳遞可以歸納為兩種方式:傳值和傳址。下面用實(shí)例和圖示兩種方式進(jìn)行描述。

1.1傳值

傳值傳遞方式主要出現(xiàn)在實(shí)參和形參都是變量的時(shí)候,如基類(lèi)型變量、數(shù)組元素、結(jié)構(gòu)體變量作參數(shù)時(shí),進(jìn)行的就是值傳遞,程序如下:

在上述的例子中,函數(shù)調(diào)用時(shí)如圖1(a)所示。實(shí)參將值傳給形參,形參在子函數(shù)里發(fā)生互換,但不能將互換的值傳回給實(shí)參,結(jié)果如圖1(b)所示。因此實(shí)參在整個(gè)過(guò)程中沒(méi)有發(fā)生變化,由此可以總結(jié)當(dāng)用普通變量作參數(shù)時(shí),進(jìn)行的是單向的值傳遞,只能實(shí)參傳形參,形參無(wú)法傳實(shí)參。

圖1變量作參數(shù)的調(diào)用過(guò)程1.2傳址

該方法中函數(shù)調(diào)用時(shí)參數(shù)間傳遞的地址有以下3種情況:變量的地址作參數(shù)、數(shù)組名作參數(shù)以及指針作參數(shù)。由于變量的地址作參數(shù)與指針作參數(shù)類(lèi)似,這里就不再舉例,主要針對(duì)數(shù)組名作參數(shù)和指針作參數(shù)進(jìn)行探討。

1.2.1數(shù)組名作參數(shù)

數(shù)組名作參數(shù)的程序如下:

void f(int t[],int n)

{int i; for(i=0;i

void main()

{ int a[4]={1,2,3,4},i; f(a,4); for(i=0;i<4;i++) printf(“%d ”,a[i]);}

數(shù)組名作參數(shù)時(shí),傳遞的是數(shù)組的首地址,即實(shí)參數(shù)組和形參數(shù)組共用一段內(nèi)存空間,如圖2(a)所示。在子函數(shù)中對(duì)數(shù)組t的所有元素進(jìn)行賦值,其實(shí)也就是對(duì)數(shù)組a的所有元素進(jìn)行賦值,如圖2(b)所示。所以當(dāng)用數(shù)組名作參數(shù)時(shí),實(shí)參和形參共享一個(gè)數(shù)組,形參數(shù)組的改變也就是實(shí)參數(shù)組的改變,其程序如下:

void swap(int *a, int *b)

{int temp; temp=*a;*a=*b;*b=temp;}

main()

{int x=3, y=5, *p=x, *q=y;

swap(p,q); printf(\"%d,%d\",*p,*q);}

圖2數(shù)組名作參數(shù)的調(diào)用過(guò)程1.2.2指針作參數(shù)

指針作參數(shù)與數(shù)組名作參數(shù)類(lèi)似,傳遞的也是地址,但此時(shí)不是共享一個(gè)數(shù)組,而是共享一個(gè)變量的地址,即實(shí)參指針和形參指針共同指向同一個(gè)變量,共享同一個(gè)變量地址如圖3所示。這時(shí)有2種情況:改變形參的指向;改變形參所指向的變量。上面的例子屬于第二種情況,形參指向的變量值發(fā)生變化,也就是實(shí)參指向的變量值發(fā)生變化。把此例稍做修改得如下程序:

void swap(int *a,int *b)

{int *temp; temp=a; a=b; b=temp;}

將函數(shù)稍做改動(dòng)后,子函數(shù)的功能只是改變了形參指針的指向,如圖4(c)所示。對(duì)實(shí)參并無(wú)影響,從而也不會(huì)影響實(shí)參所指向的變量值。

2結(jié)語(yǔ)

調(diào)用函數(shù)時(shí),從參數(shù)的傳遞情況來(lái)看,其實(shí)質(zhì)就是傳值和傳址,傳值是變量作參數(shù),實(shí)參只負(fù)責(zé)給形參賦初值,形參在整個(gè)過(guò)程中的改變都不影響實(shí)參,所以是單向的值傳遞。傳址是數(shù)組名和指針作參數(shù),此時(shí)體現(xiàn)的就是共享,數(shù)組名作參數(shù),實(shí)參和形參共享一個(gè)數(shù)組,形參數(shù)組的改變就是實(shí)參數(shù)組的改變;指針作參數(shù)共享的是同一個(gè)變量的地址,即實(shí)參和形參共同指向同一個(gè)變量,當(dāng)改變形參所指向的變量值時(shí),實(shí)參所指向的變量值也一同改變,因?yàn)樗鼈冎赶虻氖峭粋€(gè)變量。如果改變的是形參的指向,則不影響實(shí)參指針的改變。

圖3指針作參數(shù)的調(diào)用過(guò)程1圖4指針作參數(shù)的調(diào)過(guò)過(guò)程2參考文獻(xiàn)

[1]譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005.

[2]楊戰(zhàn)海,薛蘇秦,張曉光.基于C語(yǔ)言函數(shù)參數(shù)傳遞規(guī)律的探討[J].現(xiàn)代電子技術(shù),2008,31(16):8991.

[3]馬新.C語(yǔ)言函數(shù)間參數(shù)傳遞機(jī)制的探討[J].白城師范學(xué)院學(xué)報(bào),2008(6):2627.

[4]王英存.C語(yǔ)言教學(xué)中函數(shù)參數(shù)傳遞難點(diǎn)探討[J].中國(guó)商界,2010(9):258259.

[5]李寅杰.C語(yǔ)言函數(shù)中的三類(lèi)形參[J].遼寧師專(zhuān)學(xué)報(bào):自然科學(xué)版,2007(3):5254.

[6]張艷華.C語(yǔ)言函數(shù)形參與實(shí)參之間的數(shù)據(jù)傳遞[J].內(nèi)江科技,2007(9):80.

[7]張?bào)慵t,李軍宇,高喜民.C語(yǔ)言函數(shù)形參與實(shí)參之間的數(shù)據(jù)傳遞[J].平頂山工學(xué)院學(xué)報(bào),2002(3):5152.

[8]王曉青.C語(yǔ)言函數(shù)調(diào)用時(shí)的參數(shù)變化[J].青海大學(xué)學(xué)報(bào):自然科學(xué)版,1998(1):5558.

[9]古麗孜拉·安尼瓦爾.C語(yǔ)言函數(shù)參數(shù)傳遞的幾個(gè)問(wèn)題[J]. 伊犁師范學(xué)院學(xué)報(bào),2004(3):7374.

[10]楊戰(zhàn)海,郭協(xié)潮.基于C語(yǔ)言函數(shù)調(diào)用獲得結(jié)果的分析研究[J].現(xiàn)代電子技術(shù),2007,30(24):102103.

主站蜘蛛池模板: 国产无码在线调教| 亚洲第一黄片大全| 91在线无码精品秘九色APP| vvvv98国产成人综合青青| 午夜毛片免费看| 四虎综合网| 亚洲男人的天堂久久香蕉网| 色一情一乱一伦一区二区三区小说| 国内精品久久久久鸭| 一级毛片高清| 欧美精品亚洲日韩a| 国产自产视频一区二区三区| 中文字幕久久亚洲一区| 欧美特黄一免在线观看| 亚洲最大福利网站| 蜜桃视频一区| 欧美中文字幕在线播放| www.亚洲国产| 国产精品久久久久久搜索| 国产一二三区视频| 日韩美一区二区| 亚洲熟妇AV日韩熟妇在线| 香蕉精品在线| 五月天香蕉视频国产亚| 欧美.成人.综合在线| 亚洲日本中文字幕乱码中文| 中文字幕 欧美日韩| 国产流白浆视频| 中文字幕av一区二区三区欲色| 香蕉伊思人视频| 国产一区二区色淫影院| 在线一级毛片| 白浆视频在线观看| 免费观看欧美性一级| AV天堂资源福利在线观看| 中文字幕丝袜一区二区| 国产免费自拍视频| 久久国产精品夜色| 久久亚洲欧美综合| 欧美日韩精品一区二区视频| 国产精品女熟高潮视频| 欧美怡红院视频一区二区三区| 国产手机在线小视频免费观看| 欧美乱妇高清无乱码免费| 天天综合网亚洲网站| 亚洲三级a| 91成人在线免费观看| 国产在线98福利播放视频免费| 午夜欧美在线| 亚洲无码91视频| 久久精品人人做人人爽电影蜜月| 国产成人综合日韩精品无码首页 | 亚洲系列中文字幕一区二区| 国产香蕉在线视频| 国产成人亚洲无吗淙合青草| 国产9191精品免费观看| 久久一色本道亚洲| 一级不卡毛片| 成人福利在线免费观看| 欧美国产日韩另类| 精品久久人人爽人人玩人人妻| 国产亚洲视频免费播放| 亚洲日本韩在线观看| 18禁黄无遮挡网站| 亚洲男人的天堂在线| 亚洲第一精品福利| 欧美色亚洲| 免费AV在线播放观看18禁强制| 国产精品女同一区三区五区| 国产无码性爱一区二区三区| 偷拍久久网| 99精品热视频这里只有精品7 | 国产美女一级毛片| 亚洲无码91视频| 67194在线午夜亚洲| swag国产精品| 91精品久久久久久无码人妻| 国产成人禁片在线观看| 国产美女一级毛片| 中文字幕永久在线观看| 欧美中文字幕第一页线路一| 久久黄色影院|