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

C語(yǔ)言超全面講解函數(shù)的使用方法上

 更新時(shí)間:2022年04月22日 16:34:05   作者:馬桶上看算法  
函數(shù)是一組一起執(zhí)行一個(gè)任務(wù)的語(yǔ)句。每個(gè)?C?程序都至少有一個(gè)函數(shù),即主函數(shù)?main()?,所有簡(jiǎn)單的程序都可以定義其他額外的函數(shù),由于篇幅過(guò)大,分為兩篇講解,下面開始上篇

C語(yǔ)言超全面講解函數(shù)的使用方法下

一、函數(shù)的分類

1.庫(kù)函數(shù)

庫(kù)函數(shù)是C語(yǔ)言基礎(chǔ)庫(kù)為了方便程序員進(jìn)行軟件開發(fā)而提供了一系列的函數(shù),可以支持可移植性和提高程序的效率。

?? 注意:庫(kù)函數(shù)需要引頭文件。

例如:strlen函數(shù)的頭文件是<string.h>

2.自定義函數(shù)

自定義函數(shù)和庫(kù)函數(shù)一樣,有函數(shù)名、返回值類型和函數(shù)參數(shù)。但是不一樣的是,這些都是我們自己來(lái)設(shè)計(jì),這給程序員一個(gè)很大的發(fā)揮空間 

??注意:這個(gè)函數(shù)是在庫(kù)函數(shù)之外的,是不需要引頭文件的。

3.庫(kù)函數(shù)的分類

  • IO函數(shù) : printf 、scanf 、getchar、putchar
  •  字符串操作函數(shù) :strcmp、strlen
  • 字符操作函數(shù):toupper
  •  內(nèi)存操作函數(shù):memcpy、memcmp、memcet
  • 時(shí)間/日期函數(shù):time
  • 數(shù)學(xué)函數(shù):sqrt、pow
  • 其他庫(kù)函數(shù)

二、函數(shù)調(diào)用

1.傳值調(diào)用

函數(shù)的形參和實(shí)參分別占有不同的內(nèi)存塊,對(duì)形參的修改不會(huì)影響實(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ù)外部的變量。

定義指針變量,以通過(guò)訪問(wèn)地址的方式來(lái)交換a和b的值。

函數(shù)定義部分的參數(shù)接收到的是變量a和變量b的地址,并通過(guò)地址來(lái)改變他們兩個(gè)的值。

#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ù)的聲明

告訴編譯器有一個(gè)函數(shù),參數(shù)是什么?返回類型什么?但是具體是不是存在無(wú)關(guān)緊要。

函數(shù)的聲明一般出現(xiàn)在函數(shù)的使用之前,要滿足先聲明后使用。

函數(shù)的聲明一般要放在頭文件中。 

對(duì)函數(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ù)求兩個(gè)整數(shù)的較大值

難易程度:?

#include<stdio.h>
//求最大值 - 函數(shù)定義 - 傳參
int get_max(int score_one, int score_two)//函數(shù)形參
{
	//如果score_one大于score_two就返回一個(gè)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)入語(yǔ)句
		{
			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ù)的個(gè)數(shù)
	for (i = 100; i <= 200; i++)//產(chǎn)生100-200之間的數(shù)字
	{
		if (is_prime(i) == 1)//如果返回值等于1就進(jìn)入語(yǔ)句
		{
			//打印的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)入語(yǔ)句
    {
        return 1;//返回1就是返回素?cái)?shù)
    }
    else if (n % 400 == 0)//如果能被400整除就進(jìn)入語(yǔ)句
    {
        return 1;//返回1就是返回素?cái)?shù)
    }
    else
    {
        return 0;//返回0就不是素?cái)?shù)
    }
}
int main()
{
    int i;
    int count = 0;//統(tǒng)計(jì)閏年的個(gè)數(shù)
    for (i = 1000; i <= 2000; i++)//產(chǎn)生1000-2000之間的數(shù)
    {
        if (is_leap_year(i) == 1)//如果返回的值等于1就進(jìn)入語(yǔ)句
        {
            printf("%d ", i);//打印i就是打印閏年
            count++;//閏年的個(gè)數(shù)++
        }
    }
    printf("\ncount = %d\n", count);
    return 0;
}

碼字不易,還請(qǐng)多多點(diǎn)贊支持呀!

有了你們的的點(diǎn)贊和關(guān)注我將會(huì)寫出更加優(yōu)秀的文章。

到此這篇關(guān)于C語(yǔ)言超全面講解函數(shù)的使用方法的文章就介紹到這了,更多相關(guān)C語(yǔ)言函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言中多維數(shù)組的內(nèi)存分配和釋放(malloc與free)的方法

    C語(yǔ)言中多維數(shù)組的內(nèi)存分配和釋放(malloc與free)的方法

    寫代碼的時(shí)候會(huì)碰到多維數(shù)組的內(nèi)存分配和釋放問(wèn)題,在分配和釋放過(guò)程中很容易出現(xiàn)錯(cuò)誤。下面貼上一些示例代碼,以供參考。
    2013-05-05
  • QString的常用方法(小結(jié))

    QString的常用方法(小結(jié))

    這篇文章主要介紹了QString的常用方法(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Qt實(shí)現(xiàn)http服務(wù)的示例代碼

    Qt實(shí)現(xiàn)http服務(wù)的示例代碼

    這篇文章將為大家詳細(xì)講解有關(guān)Qt如何實(shí)現(xiàn)http服務(wù),小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲
    2023-04-04
  • C++改變編程入口為main函數(shù)

    C++改變編程入口為main函數(shù)

    這篇文章主要介紹了C++改變編程入口為main函數(shù)的方法的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • C++實(shí)現(xiàn)彩色飛機(jī)大戰(zhàn)

    C++實(shí)現(xiàn)彩色飛機(jī)大戰(zhàn)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)彩色飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 關(guān)于STL中set容器的一些總結(jié)

    關(guān)于STL中set容器的一些總結(jié)

    關(guān)于set,必須說(shuō)明的是set關(guān)聯(lián)式容器。set作為一個(gè)容器也是用來(lái)存儲(chǔ)同一數(shù)據(jù)類型的數(shù)據(jù)類型,并且能從一個(gè)數(shù)據(jù)集合中取出數(shù)據(jù),在set中每個(gè)元素的值都唯一,而且系統(tǒng)能根據(jù)元素的值自動(dòng)進(jìn)行排序
    2013-09-09
  • C語(yǔ)言將24小時(shí)制轉(zhuǎn)換為12小時(shí)制的方法

    C語(yǔ)言將24小時(shí)制轉(zhuǎn)換為12小時(shí)制的方法

    這篇文章主要介紹了C語(yǔ)言將24小時(shí)制轉(zhuǎn)換為12小時(shí)制的方法,涉及C語(yǔ)言針對(duì)時(shí)間的相關(guān)操作技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-07-07
  • C++中的數(shù)據(jù)對(duì)齊示例詳解

    C++中的數(shù)據(jù)對(duì)齊示例詳解

    這篇文章主要介紹了C++中數(shù)據(jù)對(duì)齊的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C++中的const限定符的使用和作用

    C++中的const限定符的使用和作用

    C++ 中的 const 限定符用于聲明不可變量,即在變量聲明時(shí)指定該變量的值不可修改。它的使用可以幫助程序員避免一些常見的編程錯(cuò)誤,如誤修改不應(yīng)該被修改的變量的值等
    2023-05-05
  • 利用C++實(shí)現(xiàn)一個(gè)線程安全的map

    利用C++實(shí)現(xiàn)一個(gè)線程安全的map

    這篇文章主要為大家詳細(xì)介紹了如何利用C++實(shí)現(xiàn)一個(gè)線程安全的map(使用ChatCPT生成),代碼是通過(guò)兩輪對(duì)話完善的,感興趣的小伙伴可以了解一下
    2023-05-05

最新評(píng)論