国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C語言函數(shù)基礎教程分類自定義參數(shù)及調用示例詳解

C語言函數(shù)基礎教程分類自定義參數(shù)及調用示例詳解

2022-03-02 15:07鹿九丸 C/C++

這篇文章主要為大家介紹了C語言函數(shù)的基礎教程,主要包含C語言函數(shù)的分類,C語言函數(shù)自定義,C語言函數(shù)的參數(shù)及C語言函數(shù)的調用示例詳解,有需要的朋友可以借鑒參考下

1.  函數(shù)是什么?

提到函數(shù),我們最先想到的肯定是數(shù)學中的函數(shù),那么C語言中的函數(shù)究竟是什么呢?接下來帶大家看一下吧!

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

在計算機科學中,子程序(英語:Subroutine, procedure, function, routine, method, subprogram, callable unit),是一個大型程序中的某部分代碼, 由一個或多個語句塊組 成。它負責完成某項特定任務,而且相較于其他代 碼,具備相對的獨立性。 一般會有輸入參數(shù)并有返回值,提供對過程的封裝和細節(jié)的隱藏。這些代碼通常被集成為軟 件庫。

2.  C語言中函數(shù)的分類

2.1 庫函數(shù)

2.1.1 為什么要有庫函數(shù)

1. 我們知道在我們學習C語言編程的時候,總是在一個代碼編寫完成之后迫不及待的想知道結果,想把這個結果打印到我們的屏幕上看看。這個時候我們會頻繁的使用一個功能:將信息按照一定的格 式打印到屏幕上(printf)。

2. 在編程的過程中我們會頻繁的做一些字符串的拷貝工作(strcpy)。

3. 在編程是我們也計算,總是會計算n的k次方這樣的運算(pow)。

像上面我們描述的基礎功能,它們不是業(yè)務性的代碼。我們在開發(fā)的過程中每個程序員都可能用的到, 為了支持可移植性和提高程序的效率,所以C語言的基礎庫中提供了一系列類似的庫函數(shù),方便程序員進行軟件開發(fā)。

2.1.2 什么是庫函數(shù)

那么什么是庫函數(shù)呢?舉個簡單的例子,庫函數(shù)就是C語言本身給我們已經定義好的函數(shù),作為程序員我們可以直接使用,就像printf()和scanf()。

注意:使用庫函數(shù)必須包含頭文件,例如我們使用printf()與scanf()時要引用stdio.h頭文件,即我們通常寫的#include<stdio.h>

2.1.3 主函數(shù)只能是main()嗎

很多小伙伴就疑惑了,那么主函數(shù)是什么呢?主函數(shù)為什么叫main函數(shù)呢?我們必須使用main()函數(shù)嗎?接下來給大家解除這個疑惑!

首先給大家一個結論,C語言中默認main作為主函數(shù)的名字,但是主函數(shù)的名字卻不一定一定是main(),實際上,我們可以自己進行設定主函數(shù)的名字的,C語言中提供了#pragma comment()可以自己設定主函數(shù)的名字,有興趣的小伙伴可以自己去嘗試,在這個地方像喲啊告訴大家,作為程序的入口主函數(shù)的名字不一定必須是main(),希望大家可以記住這個!至于主函數(shù)為什么叫main()函數(shù),這本身就是C語言默認的,如果硬要強行解釋一波的話,main()的英文意識 就是主要的意思。

2.1.4常見的庫函數(shù)

  • IO函數(shù)
  • 字符串操作函數(shù)
  • 字符操作函數(shù)
  • 內存操作函數(shù)
  • 時間/日期函數(shù)
  • 數(shù)學函數(shù)
  • 其他庫函數(shù)

這個地方不會展開去講,后期用到的時候具體講解。

2.2 自定義函數(shù)

2.2.1自定義函數(shù)是什么

自定義函數(shù)就是程序員自己定義用于首先特定功能的函數(shù)!比如我們要完成兩個數(shù)的相加我們定義的add()函數(shù)就屬于自定義函數(shù)。

2.2.2為什么要有自定義函數(shù)

自定義函數(shù)和庫函數(shù)一樣,有函數(shù)名,返回值類型和函數(shù)參數(shù)。

但是不一樣的是這些都是我們自己來設計。這給程序員一個很大的發(fā)揮空間。

2.2.3函數(shù)的組成

?
1
2
3
4
5
6
7
ret_type fun_name(para1, *)
{
    statement;//語句項
}
ret_type 返回類型
fun_name 函數(shù)名
para1    函數(shù)參數(shù)

2.2.4 舉例展示

(1)寫一個函數(shù)可以找出兩個整數(shù)中的最大值。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
//get_max函數(shù)的設計
int get_max(int x, int y)
{
    return (x > y) ? (x) : (y);
}
int main()
{
    int num1 = 10;
    int num2 = 20;
    int max = get_max(num1, num2);
    printf("max = %d\n", max);
    return 0;
}

這個地方給大家解釋一下三目運算符,即上面的(x>y)?(x):(y),這個地方表示的是,如果x>y成立,就返回x的值,反之就返回y的值,這樣就達到了求最大值的目的!

(2)寫一個函數(shù)求兩個數(shù)的和

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
//get_add函數(shù)的設計
int get_add(int x, int y)
{
    return (x + y);
}
int main()
{
    int num1 = 10;
    int num2 = 20;
    int sum = get_add(num1, num2);
    printf("sum = %d\n", sum);
    return 0;
}

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

3.1 實際參數(shù)(實參)

真實傳給函數(shù)的參數(shù),叫實參。 實參可以是:常量、變量、表達式、函數(shù)等。

注意:為什么可以是函數(shù)呢?因為有的函數(shù)是由返回值的,所以自然也就能充當實參。

無論實參是何種類型的量,在進行函數(shù)調用時,它們都必須有確定的值,以便把這些值傳送給形 參。

3.2  形式參數(shù)(形參)

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

為什么這樣說呢?接下來給大家舉個例子吧!

例如我們要交換兩個變量的值:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
void swap(int x, int y)
{
    int temp = x;
    x = y;
    y = temp;
}
int main()
{
    int num1 = 10;
    int num2 = 20;
    swap(num1, num2);
    printf("num1 = %d\nnum2 = %d", num1,num2);
    return 0;
}

下面是代碼的運行結果:

C語言函數(shù)基礎教程分類自定義參數(shù)及調用示例詳解

很明顯,并沒有達成交換的目的,這就證明了:形式參數(shù)當函數(shù)調用完成之后就自動銷毀了,即我們把num1和num2傳給x和y之后,雖然我們在函數(shù)例將x和y交換了,但是由于x和y在swap函數(shù)調用完成后就銷毀了,即并沒有真正實現(xiàn)num1和num2的交換。

所以我們可以簡單的認為:形參實例化之后其實相當于實參的一份臨時拷貝。

4. 函數(shù)的調用

4.1 傳值調用

函數(shù)的形參和實參分別占有不同內存塊,對形參的修改不會影響實參。我們上述的交換的例子就是傳值調用,即并不能真正達成交換兩個變量的值的目的!

4.2  傳址調用

傳址調用是把函數(shù)外部創(chuàng)建變量的內存地址傳遞給函數(shù)參數(shù)的一種調用函數(shù)的方式。

這種傳參方式可以讓函數(shù)和函數(shù)外邊的變量建立起真正的聯(lián)系,也就是函數(shù)內部可以直接操 作函數(shù)外部的變量。

同樣,我們就以前面的交換兩個變量的值的例子來給大家進行舉例!

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
void swap(int *x, int *y)
{
    int temp = *x;
    *x = *y;
    *y = temp;
}
int main()
{
    int num1 = 10;
    int num2 = 20;
    swap(&num1, &num2);
    printf("num1 = %d\nnum2 = %d", num1,num2);
    return 0;
}

這個地方為什么會發(fā)生這種情況呢?等后期我們學到指針的那一節(jié)的時候將會具體講解!

4.3 練習

4.3.1. 寫一個函數(shù)判斷一年是不是閏年。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include<stdio.h>
int is_leap_year(int year)
{
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
int main()
{
    int year = 0;
    int flag = 0;
    scanf("%d", &year);
    flag=is_leap_year(year);
    if (1 == flag)
    {
        printf("是閏年!");
    }
    else
    {
        printf("不是閏年!");
    }
    return 0;
}

4.3.2.寫一個函數(shù)可以判斷一個數(shù)是不是素數(shù)。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include<stdio.h>
#include<math.h>
int is_prime_num(int n)
{
    int flag = 0;
    int i = 0;
    for (i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
        {
            return 0;
        }
    }
    return 1;
}
int main()
{
    int i = 0;
    for (i = 100; i < 200; i++)
    {
        int flag = 0;
        flag=is_prime_num(i);
        if (1 == flag)
        {
            printf("%d ", i);
        }
        else
            continue;
        
    }
    return 0;
}

4.3.3  寫一個函數(shù),實現(xiàn)一個整形有序數(shù)組的二分查找。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include<stdio.h>
int find_num(int arr[], int size,int k)
{
    int left = 0;
    int right = 0;
    right = size - 1;
    int mid = 0;
    while (left <= right)
    {
        mid = (left + right) / 2;
        if (arr[mid] < k)
        {
            left = mid + 1;
        }
        else if (arr[mid] > k)
        {
            right = mid - 1;
        }
        else
        {
            return mid;
        }
    }
    if (left > right)
    {
        return -1;
    }
}
int main()
{
    int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
    int k = 7;
    int size = 0;
    size = sizeof(arr) / sizeof(arr[0]);
    int ret = 0;
    ret = find_num(arr, size,k);
    if (-1 == ret)
    {
        printf("沒有找到!");
    }
    else
    {
        printf("找到了!下標為%d", ret);
    }
    return 0;
}

以上就是C語言函數(shù)基礎教程分類自定義參數(shù)及調用示例詳解的詳細內容,更多關于C語言函數(shù)分類自定義參數(shù)及調用的資料請關注服務器之家其它相關文章!

原文鏈接:https://blog.csdn.net/m0_57304511/article/details/121379393

延伸 · 閱讀

精彩推薦
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++深入理解goto語句的替代實現(xiàn)方式分析

    深入理解goto語句的替代實現(xiàn)方式分析

    本篇文章是對goto語句的替代實現(xiàn)方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    strcpy 和strcnpy函數(shù)是字符串復制函數(shù)。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數(shù)使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    這篇文章主要介紹了c++ 單線程實現(xiàn)同時監(jiān)聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數(shù)據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數(shù)據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++C語言實現(xiàn)電腦關機程序

    C語言實現(xiàn)電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
主站蜘蛛池模板: 免费一区在线观看 | 在线观看av网站 | 日韩av一级片 | 国产精彩视频 | 狠狠的日| 日韩国产欧美一区 | 成人在线视频网 | 欧美视频网站 | 国产午夜精品一区二区三区 | 91视频在线播放视频 | 久久视频免费看 | 亚洲精品一 | 欧美黄色网 | 日韩精品免费 | 日本在线不卡观看 | 中文字幕69av | 中文字幕亚洲一区 | 国产精选一区二区三区不卡催乳 | 日韩视频―中文字幕 | 日韩成人在线一区 | 亚州av在线 | jlzzjlzz亚洲日本少妇 | 欧美日韩一区二区中文字幕 | 成人看的免费视频 | 欧美xo影院 | 午夜黄色影院 | 国产中文字幕网 | 日韩视频区 | 日韩一区二区三区精品 | 欧美激情视频一区 | 男人的天堂在线视频 | 亚洲一区中文字幕在线观看 | 最新在线国产 | 日本视频二区 | 国产真实乱全部视频 | 日韩91视频 | 岛国一区 | av在线日韩| av大片网 | 91亚洲精品乱码久久久久久蜜桃 | 亚洲成人激情在线 |