欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言基礎(chǔ)函數(shù)用法示例詳細(xì)解析

 更新時間:2021年11月18日 17:26:46   作者:RookieStriver  
最接地氣的C函數(shù)基礎(chǔ)介紹,此處對于函數(shù)的相關(guān)知識點做一些簡要的介紹,作者實屬初學(xué),寫博客也是作者學(xué)習(xí)的一個過程,難免文章中有內(nèi)容理解不到位或者有不當(dāng)之處,還請朋友們不吝指正

函數(shù)

函數(shù)定義

百度百科對函數(shù)的定義:子程序

在計算機科學(xué)中,子程序是一個大型程序中的某部分代碼,有一個或者多個語句塊組成,它負(fù)責(zé)完成某項特定的任務(wù),而且相比于其他的代碼,具備相對的獨立性。

一般來說會有輸入?yún)?shù)和返回值,提供對過程的封裝和細(xì)節(jié)的隱藏,這些代碼通常被集成為軟件庫。

函數(shù)一般格式

這里是引用

C語言函數(shù)分類

庫函數(shù)

為了支持可移植性和提高程序的效率,所以C語言的基礎(chǔ)庫提供了一系列庫函數(shù),庫函數(shù)是對實現(xiàn)某種特定功能的代碼的封裝,當(dāng)用戶需要實現(xiàn)這種功能時,只需要調(diào)用此庫函數(shù)即可,方便程序員進行軟件開發(fā)。

庫函數(shù)的分類

常用的庫函數(shù)可簡單的分為:IO函數(shù),字符串操作函數(shù),字符操作函數(shù),內(nèi)存操作函數(shù),時間/日期函數(shù),數(shù)學(xué)函數(shù)等等。

庫函數(shù)的學(xué)習(xí)

這里我們主要提供兩個網(wǎng)站提供用戶學(xué)習(xí)庫函數(shù)。
(http://www.cplusplus.com)
(http://en.cppreference.com)

自定義函數(shù)

自定義函數(shù)是程序員根據(jù)所要完成的功能,自己寫出的源代碼實現(xiàn)該功能。
自定義函數(shù)和庫函數(shù)一樣,具有函數(shù)名,返回值類型,和函數(shù)參數(shù)。

代碼示例1:寫一個函數(shù)找出兩整數(shù)的最大值。

int get_max(int x, int y)
{
	return (x > y ? x : y);
}
int main()
{
	int a, b;
	scanf("%d%d", &a, &b);
	int MAX = get_max(a, b);
	printf("MAX = %d\n", MAX);
	return 0;
}
10 20
MAX = 20
請按任意鍵繼續(xù). . .

代碼示例2:寫一個自定義函數(shù)交換兩整型內(nèi)容

void swap(int * x, int * y)
{
	int temp = *x;
	*x = *y;
	*y = temp;
}
int main()
{
	int a, b;
	scanf("%d%d", &a, &b);
	printf("交換前:a = %d b = %d\n", a, b);
	swap(&a, &b);
	printf("交換后:a = %d b = %d\n", a, b);
	return 0;
}
10 20
交換前:a = 10 b = 20
交換后:a = 20 b = 10
請按任意鍵繼續(xù). . .

函數(shù)的參數(shù)

實際參數(shù)

實際傳遞給函數(shù)的參數(shù),可以是變量,常量,表達式,函數(shù),無論實參是何種類型的量,在進行函數(shù)調(diào)用時,它們都必須具有確定的值,以便把這些值傳送給形參。

形式參數(shù)

形式參數(shù)是指被調(diào)函數(shù)的函數(shù)名后括號里的變量,形參變量只有被調(diào)用時才分配內(nèi)存空間儲存,在未出調(diào)用該函數(shù)時,它們并不占內(nèi)存中的存儲單元,因此被稱為形式參數(shù)或虛擬參數(shù)。且函數(shù)調(diào)用完成之后就即時的自動銷毀,因此形參只在被調(diào)函數(shù)內(nèi)有效。
形參與實參的聯(lián)系:當(dāng)函數(shù)調(diào)用時,實參傳遞給形參,形參是實參的一份臨時拷貝,所以對形參的修改不會影響實參。
實參單元與形參單元是不同的單元。調(diào)用結(jié)束后,形參單元被釋放,函數(shù)調(diào)用結(jié)束返回主調(diào)函數(shù)后則不能再使用該形參變量。實參單元仍保留并維持原值。因此,在執(zhí)行一個被調(diào)用函數(shù)時,形參的值如果發(fā)生改變,并不會改變主調(diào)函數(shù)中實參的值。

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

定義函數(shù)后,我們需要調(diào)用此函數(shù)才能執(zhí)行到這個函數(shù)里的代碼段。這和main()函數(shù)不一樣,main()為編譯器設(shè)定好自動調(diào)用的主函數(shù),無需人為調(diào)用,我們都是在main()函數(shù)里調(diào)用別的函數(shù),一個 C 程序里有且只有一個main()函數(shù)。

傳值調(diào)用

函數(shù)的形參和實參分別占用不同的內(nèi)存空間,且形參隨著被調(diào)函數(shù)的結(jié)束而即時的銷毀,所以對形參的修改不會影響實參。
代碼舉例:

void swap(int  x, int  y)
{
	int temp = x;
	x = y;
	y = temp;
}
int main()
{
	int a, b;
	scanf("%d%d", &a, &b);
	printf("交換前:a = %d b = %d\n", a, b);
	swap(a, b);
	printf("交換后:a = %d b = %d\n", a, b);
	return 0;
}
10 20
交換前:a = 10 b = 20
交換后:a = 10 b = 20
請按任意鍵繼續(xù). . .

傳址調(diào)用

傳址調(diào)用,顧名思義就是把地址傳遞給被調(diào)函數(shù),(實參與形參”不同級別“)。
代碼示例:

void swap(int * x, int * y)
{
	int temp = *x;
	*x = *y;
	*y = temp;
}
int main()
{
	int a, b;
	scanf("%d%d", &a, &b);
	printf("交換前:a = %d b = %d\n", a, b);
	swap(&a, &b);
	printf("交換后:a = %d b = %d\n", a, b);
	return 0;
}
10 20
交換前:a = 10 b = 20
交換后:a = 20 b = 10
請按任意鍵繼續(xù). . .

無參函數(shù)調(diào)用

如果是調(diào)用無參函數(shù),則不能加上“實參”,但括號不能省略。

void test()
{
}
int main()
{
	// 函數(shù)的調(diào)用
	test();	// right, 圓括號()不能省略
	test(250); // error, 函數(shù)定義時沒有參數(shù)
return 0;
}

函數(shù)的聲明和定義

函數(shù)的聲明

所謂函數(shù)聲明,就是告訴編譯器將有一個或者已經(jīng)有一個對應(yīng)的函數(shù),參數(shù)是什么,返回類型是什么,但是具體存不存在,編譯器不確定。

函數(shù)的聲明一般是出現(xiàn)在函數(shù)使用之前,先聲明,后使用。主要運用于多文件編程時,一般放在頭文件中。

函數(shù)的定義

函數(shù)的定義是指具體實現(xiàn)某種功能的代碼解釋。

#include <stdio.h>
int get_max(int x, int y); // 函數(shù)的聲明,分號不能省略
// int get_max(int, int); // 另一種方式
int main()
{
	int a = 10, b = 25, MAX = 0;
	MAX = get_max(a, b); // 函數(shù)的調(diào)用
	printf("MAX = %d\n", MAX);
	return 0;
}
// 函數(shù)的定義
int max(int x, int y)
{
	return x > y ? x : y;
}

函數(shù)聲明與定義的區(qū)別

定義是指對函數(shù)功能的實現(xiàn),包括指定函數(shù)名、函數(shù)類型、形參及其類型、函數(shù)體等,它是一個完整的、獨立的函數(shù)單位。

聲明的作用則是把函數(shù)的名字、函數(shù)類型以及形參的個數(shù)、類型和順序(注意,不包括函數(shù)體)通知編譯系統(tǒng),以便在對包含函數(shù)調(diào)用的語句進行編譯時,據(jù)此對其進行對照檢查(例如函數(shù)名是否正確,實參與形參的類型和個數(shù)是否一致)。

exit與return介紹

這里我們簡單介紹一下return與exit的區(qū)別與聯(lián)系:

聯(lián)系:在main函數(shù)中,exit和return的作用是一致的。
區(qū)別:在子函數(shù)中調(diào)用return只是代表子函數(shù)終止了,在子函數(shù)中調(diào)用exit,那么程序終止。

OK!!!觀眾老爺們,這里只是介紹了函數(shù)的入門知識,如果朋友們覺得有一點點作用的話,希望朋友們能夠給予小菜鳥一點支持!后續(xù)繼續(xù)給朋友們帶來更好的博文,還希望朋友們能夠繼續(xù)關(guān)注,小菜鳥致力于把自己的學(xué)習(xí)經(jīng)驗與個人理解更多的分享給大家,望大家喜歡與指正,希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用C/C++讀取matlab中.mat格式數(shù)據(jù)的操作

    使用C/C++讀取matlab中.mat格式數(shù)據(jù)的操作

    這篇文章給大家介紹了使用C/C++讀取matlab中.mat格式數(shù)據(jù)的操作,文中通過圖文結(jié)合的方式介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • 詳解C語言中的字符串?dāng)?shù)組

    詳解C語言中的字符串?dāng)?shù)組

    這篇文章主要介紹了C語言中的字符串?dāng)?shù)組,本文通過示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • 聊聊C語言中sizeof運算符的一個陷阱

    聊聊C語言中sizeof運算符的一個陷阱

    在C語言中,sizeof()是一個判斷數(shù)據(jù)類型或者表達式長度的運算符,下面這篇文章主要給大家介紹了關(guān)于C語言中sizeof運算符的一個陷阱的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • C++ 異常處理noexcept正確使用示例詳解

    C++ 異常處理noexcept正確使用示例詳解

    這篇文章主要為大家介紹了C++ 異常處理noexcept正確使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • C++ 實現(xiàn)輸入含空格的字符串

    C++ 實現(xiàn)輸入含空格的字符串

    這篇文章主要介紹了C++ 實現(xiàn)輸入含空格的字符串,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • C++模擬實現(xiàn)vector示例代碼圖文講解

    C++模擬實現(xiàn)vector示例代碼圖文講解

    這篇文章主要介紹了C++容器Vector的模擬實現(xiàn),Vector是一個能夠存放任意類型的動態(tài)數(shù)組,有點類似數(shù)組,是一個連續(xù)地址空間,下文更多詳細(xì)內(nèi)容的介紹,需要的小伙伴可以參考一下
    2023-02-02
  • 關(guān)于C/C++中typedef的定義與用法總結(jié)

    關(guān)于C/C++中typedef的定義與用法總結(jié)

    在C還是C++代碼中,typedef都使用的很多,在C代碼中尤其是多,typedef與#define有些相似,其實是不同的,特別是在一些復(fù)雜的用法上,需要的朋友可以參考下
    2012-12-12
  • c語言排序之歸并排序(遞歸和非遞歸)

    c語言排序之歸并排序(遞歸和非遞歸)

    這篇文章主要介紹了?c語言排序之歸并排序(遞歸和非遞歸),歸并就是把兩個或多個序列合并,本文主要介紹二路歸并,下文相關(guān)資料需要的小伙伴可以參考一下
    2022-04-04
  • Vscode配置C/C++環(huán)境使用minGW(保姆級配置過程)

    Vscode配置C/C++環(huán)境使用minGW(保姆級配置過程)

    本文主要介紹了Vscode配置C/C++環(huán)境使用minGW(保姆級配置過程),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • linux下基于C語言的信號編程實例

    linux下基于C語言的信號編程實例

    這篇文章主要介紹了linux下基于C語言的信號編程,實例分析了信號量的基本使用技巧與相關(guān)概念,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07

最新評論