国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語(yǔ)言的函數(shù)指針、指針函數(shù), 函數(shù)數(shù)組

這篇具有很好參考價(jià)值的文章主要介紹了C語(yǔ)言的函數(shù)指針、指針函數(shù), 函數(shù)數(shù)組。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

函數(shù)指針

是指向函數(shù)的指針,它允許您在程序運(yùn)行時(shí)動(dòng)態(tài)選擇要調(diào)用的函數(shù)。函數(shù)指針可以像普通變量一樣傳遞、存儲(chǔ)和使用,這使得它們?cè)谠S多編程場(chǎng)景中非常有用,如回調(diào)函數(shù)、函數(shù)表、插件架構(gòu)等。

以下是一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明函數(shù)指針的概念:

#include <stdio.h>

// 聲明兩個(gè)函數(shù),它們具有相同的參數(shù)和返回類型
int add(int a, int b) {
    return a + b;
}

int subtract(int a, int b) {
    return a - b;
}

int main() {
    // 聲明一個(gè)函數(shù)指針,它可以指向具有相同簽名(參數(shù)和返回類型)的函數(shù)
    int (*operation)(int, int);

    // 將函數(shù)指針指向 add 函數(shù)
    operation = add;

    // 使用函數(shù)指針調(diào)用 add 函數(shù)
    int result = operation(5, 3);
    printf("Result of add: %d\n", result);

    // 將函數(shù)指針指向 subtract 函數(shù)
    operation = subtract;

    // 使用函數(shù)指針調(diào)用 subtract 函數(shù)
    result = operation(5, 3);
    printf("Result of subtract: %d\n", result);

    return 0;
}

//定義函數(shù)后,首先聲明一個(gè)函數(shù)指針 將這個(gè)函數(shù)指針指向這個(gè)函數(shù),那么這個(gè)指針就有了這個(gè)函數(shù)的性質(zhì),就是函數(shù)指針

函數(shù)數(shù)組:

函數(shù)數(shù)組是一個(gè)數(shù)組,其中的元素都是函數(shù)指針,它允許您將多個(gè)不同的函數(shù)存儲(chǔ)在數(shù)組中,然后可以根據(jù)需要選擇和調(diào)用這些函數(shù)。這對(duì)于編寫(xiě)通用代碼、回調(diào)函數(shù)和動(dòng)態(tài)函數(shù)選擇非常有用。以下是一個(gè)簡(jiǎn)單的C/C++示例,演示了函數(shù)數(shù)組的基本用法:

#include <stdio.h>

// 定義一些函數(shù),它們將作為函數(shù)指針數(shù)組的元素
int add(int a, int b) {
    return a + b;
}

int subtract(int a, int b) {
    return a - b;
}

int multiply(int a, int b) {
    return a * b;
}

int divide(int a, int b) {
    if (b != 0) {
        return a / b;
    } else {
        printf("Error: Division by zero\n");
        return 0;
    }
}

int main() {
    // 聲明一個(gè)函數(shù)指針數(shù)組,元素類型是指向函數(shù)的指針
    int (*mathFunctions[])(int, int) = {
        add,
        subtract,
        multiply,
        divide
    };

    int a = 10, b = 5;
    for (int i = 0; i < 4; i++) {
        int result = mathFunctions[i](a, b); // 使用函數(shù)指針數(shù)組調(diào)用不同的函數(shù)
        printf("Result of operation %d: %d\n", i + 1, result);
    }

    return 0;
}

在上述示例中,我們首先定義了四個(gè)不同的數(shù)學(xué)函數(shù) add、subtract、multiply 和 divide,它們都接受兩個(gè)整數(shù)參數(shù)并返回一個(gè)整數(shù)結(jié)果。然后,我們聲明了一個(gè)函數(shù)指針數(shù)組 mathFunctions,該數(shù)組的元素是指向這些函數(shù)的指針。

在 main 函數(shù)中,我們使用循環(huán)遍歷 mathFunctions 數(shù)組,并通過(guò)函數(shù)指針調(diào)用不同的數(shù)學(xué)操作。這使得我們可以在運(yùn)行時(shí)選擇要執(zhí)行的函數(shù),而不需要在代碼中硬編碼不同的操作。函數(shù)數(shù)組是實(shí)現(xiàn)通用和可擴(kuò)展代碼的有用工具。

指針函數(shù)

指針函數(shù)是一個(gè)返回指針的函數(shù)。它是一個(gè)函數(shù),其返回類型是一個(gè)指針類型。
指針函數(shù)的聲明類似于普通函數(shù)聲明,但返回類型是一個(gè)指針。
指針函數(shù)通常用于返回動(dòng)態(tài)分配的內(nèi)存或者指向某個(gè)對(duì)象的指針。

#include <stdio.h>

// 定義一個(gè)指針函數(shù),該函數(shù)返回一個(gè)整數(shù)指針
int* pointerToFunction() {
    static int num = 42; // 靜態(tài)變量,保持其值在函數(shù)調(diào)用之間的不變
    return &num; // 返回靜態(tài)變量的地址
}

int main() {
    int* result = pointerToFunction(); // 調(diào)用指針函數(shù),得到整數(shù)指針
    printf("Value at the pointer: %d\n", *result); // 打印指針?biāo)赶虻闹?/span>

    return 0;
}

區(qū)別:

指針函數(shù)是函數(shù)中返回一個(gè)地址,他去用指針是接收。
而指針函數(shù)說(shuō)的事指向這個(gè)函數(shù)的的指針,是可以直接用這個(gè)指針操作這個(gè)函數(shù)的,也就是說(shuō)可以賦值的。

函數(shù)指針
int (*functionPtr)(int, int); // 聲明一個(gè)函數(shù)指針
functionPtr = add;           // 將函數(shù)指針指向一個(gè)函數(shù)
int result = functionPtr(5, 3); // 使用函數(shù)指針調(diào)用函數(shù)

題外話,C++中的引用

這個(gè)引用實(shí)際相當(dāng)于是創(chuàng)建了一個(gè)新的名字。通過(guò)函數(shù)內(nèi)部的操作直接改變?cè)紨?shù)據(jù):文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-708699.html

函數(shù)參數(shù)傳遞

void modifyValue(int &x) {
    x = 42;
}

int main() {
    int num = 10;
    modifyValue(num); // 通過(guò)引用傳遞參數(shù)
    // 現(xiàn)在,num 的值已經(jīng)變?yōu)?42,直接在函數(shù)內(nèi)部把num的值改了
    return 0;
}

返回引用: 函數(shù)可以返回引用,以允許鏈?zhǔn)讲僮?,并且可以修改函?shù)外部的變量。

int &getSomeValue() {
    static int x = 42;
    return x;
}

int main() {
    int &ref = getSomeValue(); // 返回靜態(tài)變量的引用
    ref = 99; // 修改靜態(tài)變量的值
    // 現(xiàn)在,靜態(tài)變量的值為 99
    return 0;
}

請(qǐng)注意,引用必須在聲明時(shí)初始化,并且一旦初始化,它將一直引用同一個(gè)對(duì)象,無(wú)法重新綁定到另一個(gè)對(duì)象。引用通常用于傳遞和操作變量而不是創(chuàng)建新的變量。

到了這里,關(guān)于C語(yǔ)言的函數(shù)指針、指針函數(shù), 函數(shù)數(shù)組的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 復(fù)習(xí)第七課 C語(yǔ)言-指針數(shù)組,函數(shù),string

    復(fù)習(xí)第七課 C語(yǔ)言-指針數(shù)組,函數(shù),string

    目錄 【1】指針和數(shù)組 【2】數(shù)組指針 【3】指針數(shù)組 【4】函數(shù) 【5】函數(shù)傳參 【6】動(dòng)態(tài)開(kāi)辟堆區(qū)空間 【7】string函數(shù)族 【8】遞歸函數(shù) 練習(xí): 直接訪問(wèn):通過(guò)數(shù)組名訪問(wèn) 間接訪問(wèn):通過(guò)指針訪問(wèn) 》1. 一維數(shù)組 運(yùn)算方法: 1) *和++都是彈幕運(yùn)算符,優(yōu)先級(jí)相同 2) 單目運(yùn)算

    2024年02月16日
    瀏覽(20)
  • 【C語(yǔ)言進(jìn)階】指針數(shù)組 —— 數(shù)組指針

    【C語(yǔ)言進(jìn)階】指針數(shù)組 —— 數(shù)組指針

    ?? 鴿芷咕 : 個(gè)人主頁(yè) ??? 個(gè)人專欄 : 《C語(yǔ)言進(jìn)階篇》 《C語(yǔ)言初階篇》 ??生活的理想,就是為了理想的生活! ?? ?? hello! 各位寶子們大家好啊,前面我們已經(jīng)把指針大部分內(nèi)容給學(xué)完了,今天就給大家?guī)?lái)數(shù)組指針or指針數(shù)組! ?? ?? 很多說(shuō)這倆名字不是差不

    2024年02月14日
    瀏覽(19)
  • C語(yǔ)言 ——指針數(shù)組與數(shù)組指針

    C語(yǔ)言 ——指針數(shù)組與數(shù)組指針

    目錄 一、二維數(shù)組 二、指針數(shù)組 (1)概念 ?(2)書(shū)寫(xiě)方式 (3)指針數(shù)組模擬二維數(shù)組 三、數(shù)組指針 (1)概念 (2)使用數(shù)組指針打印一維數(shù)組 ?(3)模擬二維數(shù)組的傳參 首先,我們要理解一下二維數(shù)組和指針變量之間的一些相關(guān)概念。 二維數(shù)組 : int arr [ 3 ][ 5 ]??

    2024年02月13日
    瀏覽(27)
  • 【go語(yǔ)言基礎(chǔ)】指針數(shù)組和數(shù)組指針

    (1)指針數(shù)組: 存儲(chǔ)指針的數(shù)組,也叫存儲(chǔ)地址的數(shù)組,簡(jiǎn)單說(shuō)就是存儲(chǔ)地址的。 首先它是一個(gè)數(shù)組,數(shù)組中的元素都是指針(地址)。 (2)數(shù)組指針: 首先它是一個(gè)指針,存儲(chǔ)的是指向數(shù)組的指針。 (1)指針數(shù)組 定義: 注意:首先是一個(gè)數(shù)組,將數(shù)組中的元素定義為

    2024年02月13日
    瀏覽(28)
  • C語(yǔ)言:指針和數(shù)組(看完拿捏指針和數(shù)組)

    C語(yǔ)言:指針和數(shù)組(看完拿捏指針和數(shù)組)

    目錄 數(shù)組名的理解: 一維數(shù)組: ?解析: ?字符數(shù)組: ?解析:? ?解析: 字符串?dāng)?shù)組: ?解析:? ?解析:? 一級(jí)指針:? ?解析:? ?解析:? 二維數(shù)組: ?解析:? 指針筆試題: 題一:一維數(shù)組 題二: 結(jié)構(gòu)體指針 題三: 一維數(shù)組 題四: 二維數(shù)組 題五: 二維數(shù)組 題

    2024年02月11日
    瀏覽(23)
  • 【再識(shí)C進(jìn)階2(中)】詳細(xì)介紹指針的進(jìn)階——函數(shù)指針數(shù)組、回調(diào)函數(shù)、qsort函數(shù)

    【再識(shí)C進(jìn)階2(中)】詳細(xì)介紹指針的進(jìn)階——函數(shù)指針數(shù)組、回調(diào)函數(shù)、qsort函數(shù)

    ??作者簡(jiǎn)介: 加油,旭杏,目前大二,正在學(xué)習(xí) C++ , 數(shù)據(jù)結(jié)構(gòu) 等?? ??作者主頁(yè):加油,旭杏的主頁(yè)?? ?本文收錄在:再識(shí)C進(jìn)階的專欄?? ??代碼倉(cāng)庫(kù):旭日東升 1?? ??歡迎大家點(diǎn)贊 ?? 收藏 ? 加關(guān)注哦!???? ???????在這一篇博客中,我們要認(rèn)識(shí)并理解 函數(shù)指

    2024年02月09日
    瀏覽(19)
  • 【C語(yǔ)言基礎(chǔ)入門(mén)】二級(jí)指針、一維數(shù)組與指針、二維數(shù)組與指針

    【C語(yǔ)言基礎(chǔ)入門(mén)】二級(jí)指針、一維數(shù)組與指針、二維數(shù)組與指針

    在學(xué)習(xí)C語(yǔ)言的過(guò)程中,理解指針的概念是非常重要的。指針提供了一種直接訪問(wèn)內(nèi)存地址的方式,使得我們可以更加靈活地管理數(shù)據(jù)和內(nèi)存。在本文中,我們將介紹C語(yǔ)言中的二級(jí)指針、一維數(shù)組與指針,并通過(guò)通俗易懂的語(yǔ)言和示例代碼來(lái)幫助讀者理解這些概念。 二級(jí)指針

    2024年02月05日
    瀏覽(29)
  • 函數(shù)指針數(shù)組的概念和應(yīng)用

    函數(shù)指針數(shù)組的概念和應(yīng)用

    是什么? 函數(shù)指數(shù)組是存放函數(shù)指針的數(shù)組 上面是函數(shù)指針數(shù)組的一個(gè)應(yīng)用,因?yàn)槲覀儼l(fā)現(xiàn)Add,Sub,Mul,Div這4個(gè)函數(shù)的參數(shù)和返回類型都一樣,又因?yàn)楹瘮?shù)名就表示函數(shù)的地址,所以我們把這4個(gè)函數(shù)的地址存放在函數(shù)指針數(shù)組parr里面。 書(shū)寫(xiě)小技巧: 我們書(shū)寫(xiě)函數(shù)指針數(shù)組時(shí),

    2024年02月13日
    瀏覽(17)
  • 全面理解C++函數(shù)最難理解的部分:數(shù)組形參,函數(shù)指針,以及函數(shù)指針作為形參

    我提到的這些部分,是我在自學(xué)C與C++中遇到的比較困難的點(diǎn)。因?yàn)槌鯇W(xué)者的編程,不太容易使用到這些點(diǎn),所以很容易造成遺忘,并且自己寫(xiě)很容易出錯(cuò)。 最近在看標(biāo)準(zhǔn)C庫(kù)的源碼的時(shí)候遇到了這樣的困惑,就是關(guān)于函數(shù)指針,或者說(shuō),把一個(gè)函數(shù)作為另一個(gè)函數(shù)的參數(shù)的這

    2024年02月07日
    瀏覽(25)
  • C語(yǔ)言:指向數(shù)組的指針和指向數(shù)組首元素的指針

    相關(guān)閱讀 C語(yǔ)言 https://blog.csdn.net/weixin_45791458/category_12423166.html?spm=1001.2014.3001.5482 ? ? ? ? 指向數(shù)組的指針和指向數(shù)組首元素的指針常常被混淆,或者籠統(tǒng)地被稱為數(shù)組指針,但它們之間是有差別的,本文就將對(duì)此進(jìn)行討論。 ? ? ? ? 下面的代碼首先創(chuàng)建了一個(gè)數(shù)組,然后創(chuàng)

    2024年02月02日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包