C語(yǔ)言中铣耘,如何利用函數(shù)和指針變量通過(guò)形參變量的值改變實(shí)參變量的值

必備知識(shí):c語(yǔ)言中的函數(shù)調(diào)用和指針變量的相關(guān)知識(shí)

眾所周知,函數(shù)是C語(yǔ)言中一個(gè)十分重要的模塊以故,因?yàn)楹瘮?shù)的存在蜗细,使得C語(yǔ)言的可讀性、可維護(hù)性怒详、可移植性大大提高炉媒。因此,想要學(xué)好C語(yǔ)言昆烁,必須要學(xué)好函數(shù)吊骤。函數(shù)的一個(gè)功能就是傳遞數(shù)值進(jìn)行運(yùn)算,那么我們?nèi)绾卫煤瘮?shù)和指針變量通過(guò)形參變量的值改變實(shí)參變量的值呢静尼?

首先白粉,讓我們先舉一個(gè)例子。

#include<stdio.h>

int main()

{

void func(int a,int b);

int x,y;

printf("please enter two numbers:\n");

scanf("%d%d",&x,&y);

func(x,y);

printf("%d,%d\n",x,y);

}

void func(int a,int b)

//函數(shù)的功能若a>b鼠渺,則調(diào)換a鸭巴,b的值

{

int c;

if(a>b)

{

c=a;

a=b;

b=c;

}

}

結(jié)果:

圖片發(fā)自簡(jiǎn)書App

分析:函數(shù)func的功能是若a>b,則調(diào)換a拦盹,b的值鹃祖,而我們輸入的數(shù)為12,6普舆,且12>6恬口,但是值卻沒(méi)有按預(yù)期調(diào)換,為什么呢奔害?

這是因?yàn)楹瘮?shù)調(diào)用中楷兽,虛實(shí)結(jié)合傳遞的是變量的值比规,且為單向傳遞四敞,即實(shí)際參數(shù)向形式參數(shù)傳遞值亿乳,但是形式參數(shù)卻不能向?qū)嶋H參數(shù)傳遞值挥转。因此沽损,在上述的程序中鸽凶,雖然x的值12傳給了a李剖,y的值6傳給了b救崔,在被調(diào)用的函數(shù)func中扶供,a筛圆,b的值確實(shí)互換了,但是卻不能影響實(shí)參x椿浓,y的值太援。因此闽晦,在調(diào)用結(jié)束后,x提岔,y的值是不會(huì)變化的仙蛉。

下面,就開始引入今天的重頭戲--指針變量碱蒙。我們?nèi)匀煌ㄟ^(guò)一個(gè)程序來(lái)說(shuō)明荠瘪。

ps:不是我太懶,只是只有通過(guò)具體的程序才能更好的理解赛惩。

#include

int main()

{

void func(int *a,int *b);

int x,y;

int *x_pointer,*y_pointer;

printf("please enter two numbers:\n");

scanf("%d,%d",&x,&y);

x_pointer=&x;

y_pointer=&y;

func(x_pointer,y_pointer);

printf("The result:\n");

printf("%d,%d\n",x,y);

}

void func(int *a,int *b)

//函數(shù)的功能若a>b哀墓,則調(diào)換a,b的值

{

int c;

if(*a>*b)

{

c=*a;

*a=*b;

*b=c;

}

}

結(jié)果:

圖片發(fā)自簡(jiǎn)書App

上面的程序成功地交換了x喷兼,y的值篮绰,這是為什么呢?

上述函數(shù)調(diào)用中季惯,虛實(shí)結(jié)合傳遞的仍然是變量的值阶牍,且為單向傳遞,卻仍能交換x星瘾,y的值走孽,why?

這就要?dú)w功于指針變量了!指針變量即為地址變量琳状,是儲(chǔ)存變量在內(nèi)存中地址的變量磕瓷。x_pointer=&x,y_pointer=&y即為使x_pointer儲(chǔ)存x的地址念逞,y_pointer儲(chǔ)存y的地址困食。

在函數(shù)調(diào)用中,傳遞的是x翎承,y的地址硕盹,那么a,b也分別儲(chǔ)存x叨咖,y的地址瘩例,那么*a,*b即為x甸各,y垛贤,交換*a,*b的值即為交換x趣倾,y的值聘惦。所以,通過(guò)函數(shù)和指針變量即可實(shí)現(xiàn)通過(guò)形參變量的值改變實(shí)參變量的值儒恋。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末善绎,一起剝皮案震驚了整個(gè)濱河市黔漂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌禀酱,老刑警劉巖瘟仿,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異比勉,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)驹止,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門浩聋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人臊恋,你說(shuō)我怎么就攤上這事衣洁。” “怎么了抖仅?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵坊夫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我撤卢,道長(zhǎng)环凿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任放吩,我火速辦了婚禮智听,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘渡紫。我一直安慰自己到推,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布惕澎。 她就那樣靜靜地躺著莉测,像睡著了一般。 火紅的嫁衣襯著肌膚如雪唧喉。 梳的紋絲不亂的頭發(fā)上捣卤,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音八孝,去河邊找鬼腌零。 笑死,一個(gè)胖子當(dāng)著我的面吹牛唆阿,可吹牛的內(nèi)容都是我干的益涧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼驯鳖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼闲询!你這毒婦竟也來(lái)了久免?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤扭弧,失蹤者是張志新(化名)和其女友劉穎阎姥,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鸽捻,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡呼巴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了御蒲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衣赶。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖厚满,靈堂內(nèi)的尸體忽然破棺而出府瞄,到底是詐尸還是另有隱情,我是刑警寧澤碘箍,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布遵馆,位于F島的核電站,受9級(jí)特大地震影響丰榴,放射性物質(zhì)發(fā)生泄漏货邓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一四濒、第九天 我趴在偏房一處隱蔽的房頂上張望逻恐。 院中可真熱鬧,春花似錦峻黍、人聲如沸复隆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)挽拂。三九已至,卻和暖如春骨饿,著一層夾襖步出監(jiān)牢的瞬間亏栈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工宏赘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绒北,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓察署,卻偏偏與公主長(zhǎng)得像闷游,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容