這篇文章主要介紹了c語言函數(shù)調(diào)用的方法有哪些,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
1、傳值調(diào)用
傳值調(diào)用,就是把一個變量的值傳遞給函數(shù)的形式參數(shù),實(shí)際就是用變量的值來新生成一個形式參數(shù),形參運(yùn)算后在把值返回。
函數(shù)中改變的值是不能影響到外界的,因而在函數(shù)里對形參的改變不會影響到函數(shù)外的變量的值。
下面通過代碼示例來理解一下:
#include<stdio.h> void myswap(int x, int y) { int t; t=x; x=y; y=t; } int main() { int a, b; printf("請輸入待交換的兩個整數(shù):"); scanf("%d %d", &a, &b); myswap(a,b); //作為對比,直接交換兩個整數(shù),顯然不行 printf("調(diào)用交換函數(shù)后的結(jié)果是:%d 和 %d\n", a, b); return 0; }
運(yùn)行:
解析:
沒有交互成功原因是:使用傳值調(diào)用,只在形參上改變了數(shù)值,沒有在實(shí)參上改變數(shù)值。
2、傳地址調(diào)用
傳地址調(diào)用,就是將變量的地址直接傳入函數(shù),它把一個變量的地址賦給函數(shù)里形式參數(shù)的指針,使指針指向真實(shí)的變量的地址,因?yàn)閷χ羔標(biāo)傅刂返膬?nèi)容的改變能反映到函數(shù)外,也就是能改變函數(shù)外的變量的值。
下面通過代碼示例來理解一下:
#include<stdio.h> void myswap(int *p1, int *p2) { int t; t=*p1; *p1=*p2; *p2=t; } int main() { int a, b; printf("請輸入待交換的兩個整數(shù):"); scanf("%d %d", &a, &b); myswap(&a,&b); //交換兩個整數(shù)的地址 printf("調(diào)用交換函數(shù)后的結(jié)果是:%d 和 %d\n", a, b); return 0; }
運(yùn)行:
解析:
交互成功的原因是:使用傳地址調(diào)用,利用指針改變了原來的地址,所以實(shí)參就交換了。
3、引用調(diào)用
引用調(diào)用實(shí)際是通過指針來實(shí)現(xiàn)的,把變量的引用傳入函數(shù);能達(dá)到使用地址調(diào)用的效果,可是使用方式如傳值調(diào)用,函數(shù)可以對其值進(jìn)行修改。
下面通過代碼示例來理解一下:
#include<stdio.h> void myswap(int &x, int &y) { int t; t=x; x=y; y=t; } int main() { int a, b; printf("請輸入待交換的兩個整數(shù):"); scanf("%d %d", &a, &b); myswap(a,b); //注意:這里調(diào)用方式與傳值調(diào)用一樣,直接以變量a和b作為實(shí)參交換 printf("調(diào)用交換函數(shù)后的結(jié)果是:%d 和 %d\n", a, b); return 0; }
運(yùn)行:
解析:
交互成功的原因是:使用引用調(diào)用,引用是直接改變兩個實(shí)參變量a,b的值,所以就交換了。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享c語言函數(shù)調(diào)用的方法有哪些內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!
標(biāo)題名稱:c語言函數(shù)調(diào)用的方法有哪些-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://jinyejixie.com/article8/digiop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、電子商務(wù)、外貿(mào)網(wǎng)站建設(shè)、App設(shè)計(jì)、品牌網(wǎng)站建設(shè)、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容