我們首先舉例出3個(gè)函數(shù),看看這三個(gè)函數(shù)的輸出有什么不同
創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作與策劃設(shè)計(jì),信宜網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:信宜等地區(qū)。信宜做網(wǎng)站價(jià)格咨詢:13518219792
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
//void huhuan(int ,int);
//void huhuan_1(int ,int );
//void huhuan_2(int ,int );
void huhuan(int a,int b)
{
int t;
t=a;
a=b;
b=t;
}
void huhuan_1(int p,int q)
{
int t;
t=p;
p=q;
q=t;
}
void huhuan_2(int p,int q)
{
int t;
t=p;
p=q;
*q=t;
}
int main()
{
int a=5;
int b=2;
//huhuan(a,b);
//huhuan_1(&a,&b);
//huhuan_2(&a,&b);
printf("%d,%d\n",a,b);
system("pause");
return 0;
}
事實(shí)上,只有jiao_huan2函數(shù)才可以實(shí)現(xiàn)兩個(gè)數(shù)的交換,這是為什么呢?
【1】執(zhí)行huhuan(a,b);時(shí),不能互換a和b的值,是因?yàn)閳?zhí)行互換函數(shù)時(shí),只是互換了形參的值,函數(shù)執(zhí)行結(jié)束時(shí),對(duì)實(shí)參沒(méi)做任何改變。
【2】執(zhí)行huhuan_1(&a,&b);時(shí),不能互換a和b的值,是因?yàn)閷?duì)于指針變量來(lái)說(shuō),改變地址的值并不改變指針?biāo)赶虻膬?nèi)容的值。
【3】執(zhí)行huhuan_2(&a,&b);時(shí),能互換a和b的值,是因?yàn)閷,b的地址分別傳遞給了p和q,執(zhí)行互換函數(shù)時(shí),將a和b的原地址對(duì)應(yīng)的內(nèi)容互換了。
注意:指針就是地址;指針變量就是存放地址的變量;改變地址的值并不改變?cè)摰刂穼?duì)應(yīng)的內(nèi)容的值。
這里我也明白了函數(shù)需要對(duì)變量進(jìn)行修改時(shí),必須傳入指針,然后利用指針間接訪問(wèn)變量,再對(duì)變量進(jìn)行修改,這里也必須對(duì)函數(shù)實(shí)參和形參傳遞理解清楚。
而我們?cè)谟煤瘮?shù)的時(shí)候,當(dāng)要修改內(nèi)存的值 需要傳內(nèi)存地址的時(shí)候,我們就需要傳入指針來(lái)達(dá)到目的。
當(dāng)前文章:有關(guān)兩個(gè)數(shù)調(diào)換的時(shí)候如果用函數(shù)的話為什么要用指針進(jìn)行傳參
網(wǎng)址分享:http://www.chinadenli.net/article30/ieoipo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、響應(yīng)式網(wǎng)站、網(wǎng)站導(dǎo)航、品牌網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、軟件開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)