中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c語言函數調用的方法有哪些

發布時間:2020-10-19 15:00:43 來源:億速云 閱讀:365 作者:小新 欄目:編程語言

這篇文章主要介紹了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;  
}

運行:

c語言函數調用的方法有哪些

解析:

沒有交互成功原因是:使用傳值調用,只在形參上改變了數值,沒有在實參上改變數值。

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;  
}

運行:

c語言函數調用的方法有哪些

解析:

交互成功的原因是:使用傳地址調用,利用指針改變了原來的地址,所以實參就交換了。

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;
}

運行:

c語言函數調用的方法有哪些

解析:

交互成功的原因是:使用引用調用,引用是直接改變兩個實參變量a,b的值,所以就交換了。

感謝你能夠認真閱讀完這篇文章,希望小編分享c語言函數調用的方法有哪些內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湛江市| 通化县| 高邑县| 双辽市| 洪泽县| 尚志市| 修文县| 五莲县| 苍南县| 石河子市| 隆子县| 淮安市| 崇左市| 乐平市| 达孜县| 兴安盟| 石狮市| 汉中市| 石林| 永清县| 临清市| 若尔盖县| 波密县| 英超| 克什克腾旗| 长兴县| 桐庐县| 铜陵市| 元氏县| 乌海市| 西宁市| 靖西县| 安远县| 张家川| 肃宁县| 中卫市| 正安县| 无为县| 平罗县| 广东省| 喀喇沁旗|