您好,登錄后才能下訂單哦!
這篇文章主要介紹了c語言函數調用的方法有哪些,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
1、傳值調用
傳值調用,就是把一個變量的值傳遞給函數的形式參數,實際就是用變量的值來新生成一個形式參數,形參運算后在把值返回。
函數中改變的值是不能影響到外界的,因而在函數里對形參的改變不會影響到函數外的變量的值。
下面通過代碼示例來理解一下:
#include<stdio.h> void myswap(int x, int y) { int t; t=x; x=y; y=t; } int main() { int a, b; printf("請輸入待交換的兩個整數:"); scanf("%d %d", &a, &b); myswap(a,b); //作為對比,直接交換兩個整數,顯然不行 printf("調用交換函數后的結果是:%d 和 %d\n", a, b); return 0; }
運行:
解析:
沒有交互成功原因是:使用傳值調用,只在形參上改變了數值,沒有在實參上改變數值。
2、傳地址調用
傳地址調用,就是將變量的地址直接傳入函數,它把一個變量的地址賦給函數里形式參數的指針,使指針指向真實的變量的地址,因為對指針所指地址的內容的改變能反映到函數外,也就是能改變函數外的變量的值。
下面通過代碼示例來理解一下:
#include<stdio.h> void myswap(int *p1, int *p2) { int t; t=*p1; *p1=*p2; *p2=t; } int main() { int a, b; printf("請輸入待交換的兩個整數:"); scanf("%d %d", &a, &b); myswap(&a,&b); //交換兩個整數的地址 printf("調用交換函數后的結果是:%d 和 %d\n", a, b); return 0; }
運行:
解析:
交互成功的原因是:使用傳地址調用,利用指針改變了原來的地址,所以實參就交換了。
3、引用調用
引用調用實際是通過指針來實現的,把變量的引用傳入函數;能達到使用地址調用的效果,可是使用方式如傳值調用,函數可以對其值進行修改。
下面通過代碼示例來理解一下:
#include<stdio.h> void myswap(int &x, int &y) { int t; t=x; x=y; y=t; } int main() { int a, b; printf("請輸入待交換的兩個整數:"); scanf("%d %d", &a, &b); myswap(a,b); //注意:這里調用方式與傳值調用一樣,直接以變量a和b作為實參交換 printf("調用交換函數后的結果是:%d 和 %d\n", a, b); return 0; }
運行:
解析:
交互成功的原因是:使用引用調用,引用是直接改變兩個實參變量a,b的值,所以就交換了。
感謝你能夠認真閱讀完這篇文章,希望小編分享c語言函數調用的方法有哪些內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。