C 教程
通過引用傳遞方式,形參為指向?qū)崊⒌刂返闹羔槪?dāng)對(duì)形參的指向操作時(shí),就相當(dāng)于對(duì)實(shí)參本身進(jìn)行的操作。
傳遞指針可以讓多個(gè)函數(shù)訪問指針?biāo)玫膶?duì)象,而不用把對(duì)象聲明為全局可訪問。
/* 函數(shù)定義 */ void swap(int *x, int *y) { int temp; temp = *x; /* 保存地址 x 的值 */ *x = *y; /* 把 y 賦值給 x */ *y = temp; /* 把 temp 賦值給 y */ return; }
如需了解 C 中指針的更多細(xì)節(jié),請(qǐng)?jiān)L問 C - 指針 章節(jié)。
現(xiàn)在,讓我們通過引用傳值來調(diào)用函數(shù) swap():
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
交換前,a 的值: 100 交換前,b 的值: 200 交換后,a 的值: 200 交換后,b 的值: 100
上面的實(shí)例表明了,與傳值調(diào)用不同,引用調(diào)用在函數(shù)內(nèi)改變了 a 和 b 的值,實(shí)際上也改變了函數(shù)外 a 和 b 的值。
其他擴(kuò)展