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

溫馨提示×

溫馨提示×

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

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

C++函數參數實例分析

發布時間:2022-04-21 10:19:18 來源:億速云 閱讀:146 作者:iii 欄目:開發技術

這篇文章主要介紹了C++函數參數實例分析的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇C++函數參數實例分析文章都會有所收獲,下面我們一起來看看吧。

一、函數參數的默認值

  • C++ 中可以在函數聲明時為參數提供一個默認值

  • 當函數調用時沒有提供參數的值,則使用默認值

  • 參數的默認值必須在函數聲明中指定

下面看一段代碼:

#include <stdio.h>
int mul(int x = 0);
int main(int argc, char *argv[])
{
    printf("%d\n", mul());
    printf("%d\n", mul(-1));
    printf("%d\n", mul(2));
    return 0;
}
int mul(int x)
{
    return x * x;
}

下面分別是該程序在 C++ 和 C語言環境下的編譯結果:

C++函數參數實例分析

在 C++ 編譯環境下程序能夠編譯通過,而在 C 語言條件下就不行,這就說明了函數參數的默認值是 C++ 語言對 C語言的一個擴展。且函數參數的默認值在定義時不會報錯,如果放在函數申明時會報錯。

函數默認參數的規則

  • 參數的默認值必須從右向左提供

  • 函數調用時使用了默認值,則后續參數必須使用默認值

如下所示:

C++函數參數實例分析

下面看一段代碼感受一下:

#include <stdio.h>
int add(int x, int y = 0, int z = 0);
int main(int argc, char *argv[])
{
    printf("%d\n", add(1));
    printf("%d\n", add(1, 2));
    printf("%d\n", add(1, 2, 3));
    return 0;
}
int add(int x, int y, int z)
{
    return x + y + z;
}

下面為輸出結果:

C++函數參數實例分析

二、函數占位參數

在 C++ 中可以為函數提供占位參數

  • 占位參數只有參數類型聲明,而沒有參數名聲明

  • 一般情況下,在函|數體內部無法使用占位參數

也就是說,下面這種表示方法在 C++ 中是沒有問題的:

C++函數參數實例分析

函數占位參數的意義

  • 占位參數與默認參數結合起來使用

  • 兼容C語言程序中可能出現的不規范寫法

就比如說,下面這兩種表示方式,在 C++ 中表示相同的意思,表示沒有參數輸入;而在C 語言中前者表示可輸入參數個數不受限制,而后者表示沒有參數輸入

C++函數參數實例分析

下面看一段代碼:

#include <stdio.h>
int func(int x, int = 0);
int main(int argc, char *argv[])
{
    printf("%d\n", func(1));
    printf("%d\n", func(2, 3));
    return 0;
}
int func(int x, int)
{
    return x;
}

下面為改代碼在C++和C語言兩種編譯條件下的輸出結果:

C++函數參數實例分析

關于“C++函數參數實例分析”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“C++函數參數實例分析”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

c++
AI

安丘市| 新宁县| 赣州市| 宁远县| 永泰县| 凤冈县| 台南县| 连南| 微博| 偏关县| 长海县| 林甸县| 潍坊市| 达拉特旗| 丹东市| 华宁县| 乃东县| 衡山县| 舞阳县| 达拉特旗| 隆尧县| 廉江市| 高邮市| 油尖旺区| 民权县| 湟中县| 安吉县| 沐川县| 本溪市| 漳平市| 凤山县| 渝北区| 巴马| 达日县| 吉木萨尔县| 肃北| 澎湖县| 顺义区| 宽甸| 梁河县| 扶绥县|