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

詳解C語言之函數(shù)

 更新時(shí)間:2021年11月12日 08:45:03   作者:LLeavee  
本文是小結(jié)了一下C語言的函數(shù)語法,詳細(xì)介紹了C語言函數(shù)語法的概述、函數(shù)的定義、函數(shù)的返回值、函數(shù)調(diào)用等7個(gè)方面的內(nèi)容,非常詳細(xì),這里推薦給小伙伴們

函數(shù)的調(diào)用

函數(shù)調(diào)用方式

  • 函數(shù)語句調(diào)用
  • 函數(shù)表達(dá)式調(diào)用
  • 函數(shù)參數(shù)調(diào)用

sum(); //函數(shù)語句調(diào)用

result = average * sum(a); //函數(shù)表達(dá)式調(diào)用

此時(shí)函數(shù)名出現(xiàn)在表達(dá)式中,其返回值將作為表達(dá)式的算數(shù)參與計(jì)算。

result = sum(sum1(a)); //函數(shù)參數(shù)調(diào)用

此時(shí)函數(shù)名出現(xiàn)在另一個(gè)函數(shù)的參數(shù)中,其返回值將作為實(shí)參賦值給外函數(shù)的形參。

函數(shù)嵌套調(diào)用

首先在C語言中不允許函數(shù)嵌套定義,也就是不許在一個(gè)函數(shù)內(nèi)定義一個(gè)新函數(shù)。

但是C語言允許函數(shù)嵌套調(diào)用。

void a()
{
        printf("sth");
}
void b()
{
        printf("sth2");
        a();
}

遞歸調(diào)用

C語言的函數(shù)都支持遞歸,也就是說,每個(gè)函數(shù)都可以直接或間接地調(diào)用自己。

遞歸實(shí)現(xiàn)的原因是函數(shù)的每個(gè)執(zhí)行過程在棧中都有自己的形參和局部變量的副本,這些副本相對(duì)獨(dú)立。

假定某個(gè)函數(shù)調(diào)用了一個(gè)被調(diào)用的函數(shù),再假定被調(diào)用的函數(shù)反過來調(diào)用了調(diào)用函數(shù),那么第二個(gè)函數(shù)就稱為調(diào)用函數(shù)的遞歸。

使用函數(shù)的遞歸需要兩個(gè)先決條件,即遞推關(guān)系和結(jié)束條件。

寫個(gè)簡單的函數(shù)遞歸:

#include<stdio.h>
void number(int a)
{
	int num = a;
	printf("輸入一個(gè)正數(shù):");
	scanf("%d",&num);
	if(num <= 0)
	{
		number(num);
	}
	else
	{
		printf("這個(gè)正數(shù)是:%d",num);
	}
} 
int main()
{
	int a; 
	number(a);
	return 0;
}

內(nèi)部函數(shù)與外部函數(shù)

函數(shù)是C語言程序中的最小實(shí)現(xiàn)單位,我們可以把一個(gè)函數(shù)或者多個(gè)函數(shù)保存為一個(gè)文件,這個(gè)文件被稱為源文件。

我們?cè)诙x一個(gè)函數(shù)后,該函數(shù)便可被其他函數(shù)所調(diào)用。

但當(dāng)一個(gè)源程序由多個(gè)源文件組成時(shí),我們可以指定函數(shù)不能被其他文件調(diào)用,這時(shí)C語言的函數(shù)便分為兩大類,內(nèi)部函數(shù)與外部函數(shù)。

內(nèi)部函數(shù)

當(dāng)某一個(gè)函數(shù)只能被其所在源文件調(diào)用時(shí),他便被稱為內(nèi)部函數(shù),也叫做靜態(tài)函數(shù)。

當(dāng)一個(gè)函數(shù)是內(nèi)部函數(shù)時(shí),他便只局限與其所在源文件中,其他源文件就可以有同名函數(shù),并且他們之間互不干擾。

static關(guān)鍵字可以將原來的函數(shù)修飾成普通函數(shù)。

static 返回值類型 函數(shù)名(參數(shù)列表)

static int number(int a)

外部函數(shù)

與內(nèi)部函數(shù)相反,外部函數(shù)是可以被其他源文件調(diào)用的。

外部函數(shù)使用extern關(guān)鍵字進(jìn)行修飾。

一般來說,定義函數(shù)時(shí)如果沒有使用extern關(guān)鍵字,則將默認(rèn)該函數(shù)為默認(rèn)函數(shù),換言之,extern可以省略。

extern 返回值類型 函數(shù)名(參數(shù)列表)

extern in number(int a)

局部變量與全局變量

“作用域”:他決定了程序中哪些語句可用哪些不可用,換言之,就是程序的可見性。作用域包括局部作用域和全局作用域。

局部變量具有局部作用域,全局變量具有全局作用域。

局部變量

在一個(gè)函數(shù)內(nèi)定義的變量稱為局部變量,我們使用的大多數(shù)變量都是局部變量,這些變量的聲明在函數(shù)內(nèi)部,無法被其他函數(shù)使用。

函數(shù)的形式參數(shù)也屬于局部變量,只作用于函數(shù)內(nèi)的所有語句塊。

一般來說,一個(gè)局部變量的作用域可以由包含該變量的一對(duì)大括號(hào)所決定。

全局變量

與局部變量相對(duì),在函數(shù)外部進(jìn)行聲明定義的變量,稱為全局變量。

全局變量不屬于某一個(gè)函數(shù),而屬于整個(gè)源文件。如果要在其他文件中使用該變量,則需先用extern關(guān)鍵字進(jìn)行引用修飾。

全局變量的作用是增加函數(shù)間數(shù)據(jù)聯(lián)系的通道。如果在一個(gè)函數(shù)中改變了全局變量的值,就能影響到其他函數(shù),這便打通了不同函數(shù)之間的通道。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • C語言數(shù)據(jù)結(jié)構(gòu)與算法之圖的遍歷(二)

    C語言數(shù)據(jù)結(jié)構(gòu)與算法之圖的遍歷(二)

    這篇文章主要是介紹了利用廣度優(yōu)先算法實(shí)現(xiàn)圖的遍歷,文中利用圖文詳細(xì)的介紹了實(shí)現(xiàn)步驟,對(duì)我們學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法有一定的幫助,需要的朋友可以參考一下
    2021-12-12
  • 詳解C++的反調(diào)試技術(shù)與繞過手法

    詳解C++的反調(diào)試技術(shù)與繞過手法

    反調(diào)試技術(shù),惡意代碼會(huì)用它識(shí)別自身是否被調(diào)試,或者讓調(diào)試器失效,給反病毒工程師們制造麻煩,拉長提取特征碼的時(shí)間線,本章將具體總結(jié)常見的反調(diào)試基礎(chǔ)的實(shí)現(xiàn)原理以及如何過掉這些反調(diào)試手段,從而讓我們能夠繼續(xù)分析惡意代碼
    2021-06-06
  • C語言中程序環(huán)境和預(yù)處理的詳細(xì)圖文講解

    C語言中程序環(huán)境和預(yù)處理的詳細(xì)圖文講解

    這篇文章主要給大家介紹了關(guān)于C語言中程序環(huán)境和預(yù)處理的相關(guān)資料,我們寫的C語言代碼,從運(yùn)行,到在屏幕上生成結(jié)果,經(jīng)歷了比較復(fù)雜的過程,需要的朋友可以參考下
    2023-02-02
  • OpenCV實(shí)現(xiàn)摳圖工具

    OpenCV實(shí)現(xiàn)摳圖工具

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)摳圖工具,文中示例代碼介紹的非常詳細(xì),具有一定為大家詳細(xì)的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C語言學(xué)習(xí)之函數(shù)知識(shí)總結(jié)

    C語言學(xué)習(xí)之函數(shù)知識(shí)總結(jié)

    函數(shù)是一組一起執(zhí)行一個(gè)任務(wù)的語句。每個(gè)?C?程序都至少有一個(gè)函數(shù),即主函數(shù)?main()?,所有簡單的程序都可以定義其他額外的函數(shù)。本文就為大家詳細(xì)講講C語言中函數(shù)的相關(guān)知識(shí)點(diǎn),希望有所幫助
    2022-07-07
  • C++深入刨析類與對(duì)象的使用

    C++深入刨析類與對(duì)象的使用

    類和對(duì)象是兩種以計(jì)算機(jī)為載體的計(jì)算機(jī)語言的合稱。對(duì)象是對(duì)客觀事物的抽象,類是對(duì)對(duì)象的抽象。類是一種抽象的數(shù)據(jù)類型;變量就是可以變化的量,存儲(chǔ)在內(nèi)存中—個(gè)可以擁有在某個(gè)范圍內(nèi)的可變存儲(chǔ)區(qū)域
    2022-05-05
  • 為什么獲取環(huán)境變量getenv小心有坑

    為什么獲取環(huán)境變量getenv小心有坑

    這篇文章主要介紹了獲取環(huán)境變量getenv小心有坑問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • c++項(xiàng)目中后綴名vcxproj和sln的區(qū)別及說明

    c++項(xiàng)目中后綴名vcxproj和sln的區(qū)別及說明

    這篇文章主要介紹了c++項(xiàng)目中后綴名vcxproj和sln的區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • C語言指針的長度和類型深入分析

    C語言指針的長度和類型深入分析

    這篇文章主要介紹了C語言指針的長度和類型,針對(duì)常見的各個(gè)類型進(jìn)行了相對(duì)詳細(xì)的分析,需要的朋友可以參考下
    2014-09-09
  • 基于C語言實(shí)現(xiàn)掃雷游戲

    基于C語言實(shí)現(xiàn)掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了基于C語言實(shí)現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11

最新評(píng)論

临海市| 麻阳| 绍兴县| 竹溪县| 疏附县| 罗定市| 兴城市| 两当县| 穆棱市| 和田县| 湖南省| 南投县| 西城区| 乐东| 宜都市| 扶余县| 南郑县| 新蔡县| 拉萨市| 通山县| 共和县| 健康| 工布江达县| 龙江县| 安福县| 兴宁市| 斗六市| 桂东县| 黄平县| 丰台区| 顺平县| 新丰县| 故城县| 兴和县| 浑源县| 无锡市| 甘洛县| 棋牌| 云梦县| 视频| 竹溪县|