C語言超全面講解函數(shù)的使用方法上
一、函數(shù)的分類
1.庫函數(shù)
庫函數(shù)是C語言基礎(chǔ)庫為了方便程序員進(jìn)行軟件開發(fā)而提供了一系列的函數(shù),可以支持可移植性和提高程序的效率。

?? 注意:庫函數(shù)需要引頭文件。
例如:strlen函數(shù)的頭文件是<string.h>
2.自定義函數(shù)
自定義函數(shù)和庫函數(shù)一樣,有函數(shù)名、返回值類型和函數(shù)參數(shù)。但是不一樣的是,這些都是我們自己來設(shè)計(jì),這給程序員一個很大的發(fā)揮空間

??注意:這個函數(shù)是在庫函數(shù)之外的,是不需要引頭文件的。
3.庫函數(shù)的分類
- IO函數(shù) : printf 、scanf 、getchar、putchar
- 字符串操作函數(shù) :strcmp、strlen
- 字符操作函數(shù):toupper
- 內(nèi)存操作函數(shù):memcpy、memcmp、memcet
- 時間/日期函數(shù):time
- 數(shù)學(xué)函數(shù):sqrt、pow
- 其他庫函數(shù)
二、函數(shù)調(diào)用
1.傳值調(diào)用
函數(shù)的形參和實(shí)參分別占有不同的內(nèi)存塊,對形參的修改不會影響實(shí)參
#include<stdio.h>
void swap(int x, int y)
{
int z = 0;
z = x;
x = y;
y = z;
}
int main()
{
int a = 10;
int b = 20;
printf("交換前=%d %d\n", a, b);
swap(a, b);
printf("交換后=%d %d\n", a, b);
return 0;
}
2.傳址調(diào)用
傳址調(diào)用是把函數(shù)外部創(chuàng)建變量的內(nèi)存地址傳遞地函數(shù)參數(shù)的一種調(diào)用函數(shù)方式。
這種操作可以讓函數(shù)和函數(shù)外邊的變量建立起真正的聯(lián)系,也就是函數(shù)內(nèi)部可以直接操作函數(shù)外部的變量。
定義指針變量,以通過訪問地址的方式來交換a和b的值。
函數(shù)定義部分的參數(shù)接收到的是變量a和變量b的地址,并通過地址來改變他們兩個的值。
#include<stdio.h>
void swap(int * pa, int * pb )
{
int z = 0;
z = *pa;
*pa = *pb;
*pb = z;
}
int main()
{
int a = 10;
int b = 20;
printf("交換前=%d %d\n", a, b);
swap(&a, &b);
printf("交換后=%d %d\n", a, b);
return 0;
}
三、函數(shù)的聲明
告訴編譯器有一個函數(shù),參數(shù)是什么?返回類型什么?但是具體是不是存在無關(guān)緊要。
函數(shù)的聲明一般出現(xiàn)在函數(shù)的使用之前,要滿足先聲明后使用。
函數(shù)的聲明一般要放在頭文件中。

對函數(shù)聲明
#include<stdio.h>
int main()
{
int a = 10;
int b = 20;
//函數(shù)的聲明 - 告知
int Add(int, int);
int c = Add(a, b);
printf("%d\n", c);
return 0;
}
//函數(shù)的定義
int Add(int x, int y)
{
return x + y;
}四、函數(shù)定義
函數(shù)的定義是指函數(shù)的具體實(shí)現(xiàn),交代函數(shù)的功能實(shí)現(xiàn) 。
定義是一種更強(qiáng)有力的聲明

#include<stdio.h>
int add(int a, int b)//函數(shù)定義
{
return a + b;//返回a + b的值
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
int c = add(a, b);//函數(shù)調(diào)用 - 計(jì)算a + b的值
printf("%d\n", c);
return 0;
}五、函數(shù)的參數(shù)
1.形式參數(shù)(形參)
函數(shù)定義部分的參數(shù)是形參

2.實(shí)際參數(shù)(實(shí)參)
函數(shù)調(diào)用部分的參數(shù)是實(shí)參

六、函數(shù)的練習(xí)
1.用函數(shù)求兩個整數(shù)的較大值
難易程度:?
#include<stdio.h>
//求最大值 - 函數(shù)定義 - 傳參
int get_max(int score_one, int score_two)//函數(shù)形參
{
//如果score_one大于score_two就返回一個score_one的值
//否則就返回score_two的值
//返回的值即為最大值
return score_one > score_two ? score_one : score_two;
}
int main()
{
int score_one = 0;
int score_two = 0;
scanf("%d %d", &score_one, &score_two);
//求最大值函數(shù) - 調(diào)用 - 并傳參
int max = get_max(score_one, score_two);//函數(shù)實(shí)參
printf("max=%d\n", max);
return 0;
}2.用函數(shù)打印100~200之間的素?cái)?shù)
難易程度:??
素?cái)?shù)又叫質(zhì)數(shù),質(zhì)數(shù)是指在大于1的自然數(shù)中,除了1和它本身以外,不能被其他自然數(shù)整除的數(shù)。
#include<stdio.h>
int is_prime(int i)
{
int j = 0;
for (j = 2; j < i; j++)//產(chǎn)生除了1和它本身的自然數(shù)
{
//拿i試除除了1和它本身的自然數(shù)
if (i % j == 0)//整除進(jìn)入語句
{
return 0;//返回0
}
}
//i與所有除了1和它本身的自然數(shù)試除之后,返回的值就是素?cái)?shù)
return 1;//返回1,就是返回素?cái)?shù)的值
}
int main()
{
int i = 0;
int count = 0;//統(tǒng)計(jì)素?cái)?shù)的個數(shù)
for (i = 100; i <= 200; i++)//產(chǎn)生100-200之間的數(shù)字
{
if (is_prime(i) == 1)//如果返回值等于1就進(jìn)入語句
{
//打印的i就是素?cái)?shù)
printf("%d ", i);
count++;//每一次打印i,count++
}
}
printf("\ncount = %d\n", count);
return 0;
}3.用函數(shù)打印1000~2000之間的閏年
?? 注意
- 能被4整除,并且不能被100整除
- 能被400整除
難易程度:??
#include<stdio.h>
int is_leap_year(int n)//打印1000-2000素?cái)?shù)的實(shí)現(xiàn)
{
if (n % 4 == 0 && n % 100 != 0)//如果能被4整除,并且不能被100整除就進(jìn)入語句
{
return 1;//返回1就是返回素?cái)?shù)
}
else if (n % 400 == 0)//如果能被400整除就進(jìn)入語句
{
return 1;//返回1就是返回素?cái)?shù)
}
else
{
return 0;//返回0就不是素?cái)?shù)
}
}
int main()
{
int i;
int count = 0;//統(tǒng)計(jì)閏年的個數(shù)
for (i = 1000; i <= 2000; i++)//產(chǎn)生1000-2000之間的數(shù)
{
if (is_leap_year(i) == 1)//如果返回的值等于1就進(jìn)入語句
{
printf("%d ", i);//打印i就是打印閏年
count++;//閏年的個數(shù)++
}
}
printf("\ncount = %d\n", count);
return 0;
}碼字不易,還請多多點(diǎn)贊支持呀!
有了你們的的點(diǎn)贊和關(guān)注我將會寫出更加優(yōu)秀的文章。
到此這篇關(guān)于C語言超全面講解函數(shù)的使用方法的文章就介紹到這了,更多相關(guān)C語言函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++ win系統(tǒng)如何用MinGW編譯Boost庫
這篇文章主要介紹了C++ win系統(tǒng)如何用MinGW編譯Boost庫問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12
Linux/C++多線程實(shí)例學(xué)習(xí)十字路口車輛調(diào)度
這篇文章主要為大家介紹了Linux/C++多線程實(shí)例學(xué)習(xí)十字路口車輛調(diào)度示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
OpenCV基于背景減除實(shí)現(xiàn)行人計(jì)數(shù)
本文主要介紹了如何使用OpenCV C++對視頻中的人流量進(jìn)行統(tǒng)計(jì)。文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)OpenCV有一定的幫助,需要的可以了解一下2022-01-01
Microsoft Visual Studio 2022的安裝與使用詳細(xì)教程
Microsoft Visual Studio 2022是Microsoft Visual Studio軟件的一個高版本,能夠編寫和執(zhí)行C/C++代碼,具有強(qiáng)大的功能,是開發(fā)C/C++程序的主流軟件,這篇文章主要介紹了Microsoft Visual Studio 2022的安裝與使用詳細(xì)教程2024-01-01
C語言函數(shù)的遞歸和調(diào)用實(shí)例分析
一個函數(shù)在它的函數(shù)體內(nèi)調(diào)用它自身稱為遞歸調(diào)用。這種函數(shù)稱為遞歸函數(shù)。C語言允許函數(shù)的遞歸調(diào)用。在遞歸調(diào)用中,主調(diào)函數(shù)又是被調(diào)函數(shù)。執(zhí)行遞歸函數(shù)將反復(fù)調(diào)用其自身,每調(diào)用一次就進(jìn)入新的一層2013-07-07
C語言簡單實(shí)現(xiàn)計(jì)算字符個數(shù)的方法
這篇文章主要介紹了C語言簡單實(shí)現(xiàn)計(jì)算字符個數(shù)的方法,涉及C語言針對字符串的簡單遍歷與判定技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07

