最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言函數(shù)參數(shù)詳解之實際參數(shù)(實參)&形式參數(shù)(形參)詳解

 更新時間:2025年09月12日 15:00:16   作者:YIN_尹  
本文給大家講解C語言函數(shù)參數(shù)詳解之實際參數(shù)(實參)&形式參數(shù)(形參)的相關(guān)知識,包括基礎(chǔ)概念和示例代碼,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧

這篇文章我們一起學(xué)習(xí)一下函數(shù)的參數(shù),函數(shù)的參數(shù)分為實參和形參。

一.什么是實際參數(shù)(實參)

首先我們來學(xué)習(xí)實參,什么是實參呢?

實際參數(shù)簡稱“實參”。

在調(diào)用有參函數(shù)時,函數(shù)名后面括號中的參數(shù)稱為“實參”,是我們真實傳給函數(shù)的參數(shù),實參可以是:常量、變量、表達式、函數(shù)等。
無論實參是何種類型的量,在進行函數(shù)調(diào)用時,它們都必須有確定的值,以便把這些值傳送給形參。

下面我們寫個代碼來幫助大家理解:

#include <stdio.h>
int add(int x, int y)
{
	return x + y;
}
int main()
{
	int a = 20;
	int b = 30;
	int ret1 = add(20, 30);
	printf("%d\n", ret1);
	int ret2 = add(a, b);
	printf("%d\n", ret2);
	int ret3 = add(a + b, a - b);
	printf("%d\n", ret3);
	int ret4 = add(add(2, 3), 5);
	printf("%d\n", ret4);
	return 0;
}

無論實參是何種類型的量,它們都必須有確定的值

二.什么是形式參數(shù)(形參)

那什么是形式參數(shù)呢?

形式參數(shù)是指函數(shù)名后括號中的變量,因為形式參數(shù)只有在函數(shù)被調(diào)用的過程中才實例化(分配內(nèi)存單元),所以叫形式參數(shù)。
形式參數(shù)當(dāng)函數(shù)調(diào)用完成之后就自動銷毀了。因此形式參數(shù)只在函數(shù)中有效。

還來看上面的代碼:

#include <stdio.h>
int add(int x, int y)
{
	return x + y;
}
int main()
{
	int a = 20;
	int b = 30;
	//printf("%d %d", x, y);
	int ret1 = add(20, 30);
	printf("%d\n", ret1);
	int ret2 = add(a, b);
	printf("%d\n", ret2);
	int ret3 = add(a + b, a - b);
	printf("%d\n", ret3);
	int ret4 = add(add(2, 3), 5);
	printf("%d\n", ret4);
	return 0;
}

1.形參只在函數(shù)中有效:

我們?nèi)绻诤瘮?shù)外部使用函數(shù)形參,這是不可行的。

2.形參在函數(shù)調(diào)用過程中才實例化(分配內(nèi)存單元)

函數(shù)調(diào)用之前,形參還未創(chuàng)建

函數(shù)調(diào)用過程中,形參才被實例化

函數(shù)調(diào)用結(jié)束,形參生命周期結(jié)束,被銷毀

三.形參與實參的關(guān)系

了解了什么是函數(shù)的形參和實參,那兩者之間有什么關(guān)系呢?

他們的關(guān)系是:

形參實例化之后其實相當(dāng)于實參的一份臨時拷貝。

這里我們對函數(shù)的實參和形參進行分析:

我們來嘗試寫一個函數(shù)交換兩個整形變量的內(nèi)容。

#include <stdio.h>
//實現(xiàn)成函數(shù),但是不能完成任務(wù)
void Swap1(int x, int y) {
	int tmp = 0;
	tmp = x;
	x = y;
	y = tmp;
}
int main()
{
	int num1 = 1;
	int num2 = 2;
	Swap1(num1, num2);
	printf("Swap1::num1 = %d num2 = %d\n", num1, num2);
	return 0;
}

函數(shù)swap1用x,y接收了num1,num2,并把x,y進行了交換,但是我們打印出來的num1,num2并沒有交換,為啥呢?

這是因為在函數(shù)調(diào)用時,形參x,y是實參num1,num2的一份臨時拷貝,形參和實參并沒有建立真正意義上的聯(lián)系,形參x,y是兩個獨立的變量,和實參num1,num2分別占用不同的內(nèi)存空間,在這里,形參和實參只是數(shù)值相同罷了.

所以,交換形參x,y,并不會對實參num1,num2產(chǎn)生影響!??!

在這里,我們?nèi)绻胍_到交換實參的目的,需要進行傳址調(diào)用,這個后面我們會詳細給大家講解,現(xiàn)在可以先簡單了解一下:

所謂傳址,就是num1,num2的地址作為參數(shù)傳過去,當(dāng)然我們就需要兩個整形指針去接收,然后,我們在函數(shù)內(nèi)部,就可以通過這兩個指針找到num1,num2,對它們進行交換.

接下來,我們就用傳址調(diào)用的方法來實現(xiàn)一下函數(shù):

#include <stdio.h>
//正確的版本
void Swap2(int* px, int* py) {
	int tmp = 0;
	tmp = *px;
	*px = *py;
	*py = tmp;
}
int main()
{
	int num1 = 1;
	int num2 = 2;
	Swap2(&num1, &num2);
	printf("Swap2::num1 = %d num2 = %d\n", num1, num2);
	return 0;
}

這次,我們就真正達到了交換num1,num2的目的

總之,我們最后得到的結(jié)論就是,函數(shù)實參與形參的關(guān)系就是:

形參實例化之后其實相當(dāng)于實參的一份臨時拷貝。

以上就是對函數(shù)參數(shù)的介紹,歡迎大家指正?。?!

到此這篇關(guān)于C語言函數(shù)參數(shù)詳解之實際參數(shù)(實參)&amp;形式參數(shù)(形參)詳解的文章就介紹到這了,更多相關(guān)C語言實際參數(shù)與形式參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設(shè)置X軸的顯示區(qū)間

    Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設(shè)置X軸的顯示區(qū)間

    這篇文章主要介紹了Qt圖形圖像開發(fā)之曲線圖表模塊QChart庫讀取/設(shè)置X軸的顯示區(qū)間,需要的朋友可以參考下
    2020-03-03
  • C++中實現(xiàn)fibonacci數(shù)列的幾種方法

    C++中實現(xiàn)fibonacci數(shù)列的幾種方法

    本文主要介紹了C++中實現(xiàn)fibonacci數(shù)列的幾種方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C語言中字符串常用函數(shù)strcat與strcpy的用法介紹

    C語言中字符串常用函數(shù)strcat與strcpy的用法介紹

    以下是對C語言中字符串常用函數(shù)strcat與strcpy的使用方法進行了詳細的分析介紹,需要的朋友可以參考下
    2013-07-07
  • C++超詳細講解隱藏私有屬性和方法的兩種實現(xiàn)方式

    C++超詳細講解隱藏私有屬性和方法的兩種實現(xiàn)方式

    為了避免因為將類庫中的私有成員開放給類的使用方而導(dǎo)致的軟件邏輯外泄,因此需要將對外代碼中的私有成員隱藏起來,下面我們來了解一下隱藏私有屬性和方法的兩種實現(xiàn)方式
    2022-05-05
  • C++ STL入門教程(6) set(集合)的使用方法

    C++ STL入門教程(6) set(集合)的使用方法

    這篇文章主要為大家詳細介紹了C++ STL入門教程的第六篇,set集合的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • C語言實現(xiàn)飛機游戲(進階版)的示例代碼

    C語言實現(xiàn)飛機游戲(進階版)的示例代碼

    在前文中,已經(jīng)帶大家利用C語言實現(xiàn)了簡單的飛機游戲,但它還存在一些缺陷。因此,本文將給大家?guī)磉M階版的飛機游戲,需要的可以參考一下
    2022-10-10
  • 詳解C++ STL中vector擴容機制

    詳解C++ STL中vector擴容機制

    vector是表示可以改變大小的數(shù)組的序列容器,就像數(shù)組一樣,vector對其元素使用連續(xù)的存儲位置,這篇文章將給大家詳細介紹C++ STL中vector擴容機制,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2024-03-03
  • C語言實現(xiàn)簡易通訊錄

    C語言實現(xiàn)簡易通訊錄

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡易通訊錄,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C++ 深入淺出探索模板

    C++ 深入淺出探索模板

    人們需要編寫多個形式和功能都相似的函數(shù),因此有了函數(shù)模板來減少重復(fù)勞動;人們也需要編寫多個形式和功能都相似的類,于是 C++ 引人了類模板的概念,編譯器從類模板可以自動生成多個類,避免了程序員的重復(fù)勞動
    2022-04-04
  • C++中的解釋器模式實例詳解

    C++中的解釋器模式實例詳解

    這篇文章總結(jié)了C++標(biāo)準(zhǔn)庫中的算法分類,還介紹了sort和stable_sort的區(qū)別,以及remove和erase的結(jié)合使用,結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2025-11-11

最新評論

本溪市| 广水市| 忻州市| 三都| 庄河市| 林周县| 文化| 兴宁市| 鄂伦春自治旗| 贵溪市| 鹿邑县| 上饶县| 嘉禾县| 吴忠市| 雷山县| 宁波市| 北宁市| 唐海县| 金湖县| 静乐县| 游戏| 万宁市| 乡城县| 阆中市| 信丰县| 彰化市| 凯里市| 德保县| 临沂市| 平罗县| 齐河县| 嘉峪关市| 荆门市| 新竹市| 怀宁县| 红桥区| 新密市| 石屏县| 赤峰市| 孟津县| 沅陵县|