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.

主站蜘蛛池模板: 久久永久精品免费视频| 免费观看亚洲人成网站| 成人毛片免费在线观看| 青青久在线视频免费观看| 国产99视频免费精品是看6| 制服丝袜国产精品| 欧美成人第一页| 中文字幕第1页在线播| 国产精品自在线拍国产电影 | 婷婷六月激情综合一区| 69国产精品视频免费| 五月激情婷婷综合| 亚洲青涩在线| 国产欧美综合在线观看第七页| A级毛片高清免费视频就| 中文字幕一区二区视频| 91久久夜色精品| 91免费国产在线观看尤物| 九色视频在线免费观看| 国产精品无码久久久久久| AV熟女乱| 亚洲视频无码| 国产精品免费入口视频| 国产无码精品在线| 精品久久香蕉国产线看观看gif| 波多野衣结在线精品二区| 亚洲色中色| 性做久久久久久久免费看| 日本欧美视频在线观看| 亚洲国产天堂久久九九九| 最新无码专区超级碰碰碰| 久久亚洲国产视频| 午夜福利无码一区二区| 国产成a人片在线播放| 日本人妻丰满熟妇区| 又黄又湿又爽的视频| 亚洲国产成熟视频在线多多| 欧美精品黑人粗大| 欧洲av毛片| 97久久超碰极品视觉盛宴| 老司机精品一区在线视频| 国产在线专区| 久久亚洲综合伊人| 中国国产一级毛片| 亚洲视频影院| 91啦中文字幕| 国产麻豆精品手机在线观看| 亚洲成人在线网| 在线观看91香蕉国产免费| 欧美性久久久久| 亚洲不卡av中文在线| Jizz国产色系免费| 2022国产无码在线| 超清无码一区二区三区| 日韩黄色大片免费看| 国产精品xxx| 欧美日本二区| 老司机久久精品视频| 亚洲国产欧美目韩成人综合| 日本妇乱子伦视频| 婷婷成人综合| 亚洲欧美国产高清va在线播放| 国产成人a毛片在线| 在线另类稀缺国产呦| 国产精品yjizz视频网一二区| 亚洲精品天堂在线观看| 国产精品永久不卡免费视频| 国产老女人精品免费视频| 国产在线98福利播放视频免费| 成人福利在线看| 97国内精品久久久久不卡| 亚洲香蕉久久| 精品视频一区二区观看| 成人伊人色一区二区三区| 亚洲日韩精品无码专区| 国产你懂得| 四虎国产永久在线观看| 国产美女丝袜高潮| 亚洲成人播放| 五月婷婷亚洲综合| 国产一区二区三区在线观看免费| 国产91小视频|