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.

主站蜘蛛池模板: 欧美激情,国产精品| 亚洲日韩精品综合在线一区二区 | 成人综合久久综合| 色妞永久免费视频| 久久黄色免费电影| 亚洲精品国产自在现线最新| 99re这里只有国产中文精品国产精品| 无码内射在线| 国产尤物视频在线| 中文天堂在线视频| 熟妇人妻无乱码中文字幕真矢织江 | 99在线视频免费| 国产成人精品一区二区免费看京| 国产91av在线| 亚洲三级片在线看| 国产成人精品男人的天堂| 久久综合九九亚洲一区| 欧美精品影院| 无码国产伊人| 久久美女精品| 国产亚洲精久久久久久无码AV| 久久99久久无码毛片一区二区| 91久久偷偷做嫩草影院电| 免费人成黄页在线观看国产| 国产无码性爱一区二区三区| 亚洲综合久久成人AV| 大陆国产精品视频| 成人一区在线| 亚洲人成网站日本片| 国产丝袜啪啪| 无码电影在线观看| 久久久噜噜噜| 日本午夜网站| 亚洲精品你懂的| 在线不卡免费视频| 波多野结衣在线一区二区| 午夜免费小视频| 一本无码在线观看| 国产91在线|中文| 成人毛片免费在线观看| 欧美伦理一区| 国产午夜福利亚洲第一| 人妻丰满熟妇啪啪| 国产在线日本| 欧美精品1区| 九九热在线视频| 国产欧美日韩另类| 欧美一级在线看| 人妻丝袜无码视频| 亚洲三级a| 亚洲成人精品在线| 午夜精品一区二区蜜桃| AⅤ色综合久久天堂AV色综合| 伊人精品视频免费在线| 色综合中文字幕| 四虎成人精品在永久免费| 欧美成人午夜在线全部免费| 国产91熟女高潮一区二区| 欧美激情综合一区二区| 国产成人福利在线| 欧美日韩第三页| 无套av在线| 国产亚洲美日韩AV中文字幕无码成人| 欧美一级高清视频在线播放| 精品伊人久久大香线蕉网站| 黄色一级视频欧美| 亚欧美国产综合| 特级做a爰片毛片免费69| 88av在线播放| h网站在线播放| 午夜福利视频一区| 国产亚洲日韩av在线| 中文字幕日韩欧美| 制服丝袜 91视频| 欧美国产另类| 国产高清在线观看| 亚洲无码高清免费视频亚洲| 久久婷婷国产综合尤物精品| 国产95在线 | 欧美日韩第二页| 亚洲丝袜第一页| 国产亚洲精品91|