亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語言中如何在結構體內定義函數

 更新時間:2023年02月24日 10:36:12   作者:徒步者~  
這篇文章主要介紹了C語言中如何在結構體內定義函數問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

如何在結構體內定義函數

結構體中引入函數

#include <stdio.h>

struct student {
?? ?char *name;
?? ?int age;

?? ?void (*printInfo)(struct student *stu);
};

void printInfo(struct student *stu)
{
?? ?printf("name = %s, age = %d", stu->name, stu->age);
}

int main(int argc, char**argv)
{
?? ?struct student students[] = {
?? ??? ?{"zhangsan", 10, printInfo},
?? ??? ?{"lisi", 26, printInfo},
?? ?};

?? ?students[0].printInfo(&students[0]);
?? ?students[1].printInfo(&students[1]);
}

C++中結構體引入

#include <stdio.h>

struct student {
?? ?char *name;
?? ?int age;

?? ?void printInfo(void)
?? ?{
?? ??? ?printf("name = %s, age = %d\n", name, age);
?? ?}
};

int main(int argc, char**argv)
{
?? ?struct student students[] = {
?? ??? ?{"zhangsan", 10},
?? ??? ?{"lisi", 26},
?? ?};

?? ?students[0].printInfo();
?? ?students[1].printInfo();
}

C++中類引入

#include <stdio.h>

class student {
public:
?? ?char *name;
?? ?int age;

?? ?void printInfo(void)
?? ?{
?? ??? ?printf("name = %s, age = %d\n", name, age);
?? ?}
};

int main(int argc, char**argv)
{
?? ?struct student students[] = {
?? ??? ?{"zhangsan", 10},
?? ??? ?{"lisi", 26},
?? ?};

?? ?students[0].printInfo();
?? ?students[1].printInfo();
}

結構體成員有函數的定義與使用

```c

#include <stdio.h>
typedef int (*FunHandle)(int, int);			//定義 指向函數的指針 
struct Example
{
    int a;
    int b;
    FunHandle fun;					//函數作為結構體成員
};

int add(int, int);

int main()
{
    struct Example ex;
    int r;
    ex.a = 1;
    ex.b = 2;
    ex.fun = add;
    r = ex.fun(ex.a, ex.b);			//結構體中函數的 使用
    printf("%d + %d = %d \n", ex.a, ex.b, r);
    return 0;
}

int add(int a, int b)
{
    return a+b;

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • C語言中const和指針的秘密你知道嗎

    C語言中const和指針的秘密你知道嗎

    這篇文章主要為大家詳細介紹了C語言中const和指針的秘密,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Visual Studio 2022無法打開源文件的解決方式

    Visual Studio 2022無法打開源文件的解決方式

    這篇文章主要介紹了Visual Studio 2022無法打開源文件的解決方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • C語言怎么連接兩個數組的內容你知道嗎

    C語言怎么連接兩個數組的內容你知道嗎

    這篇文章主要為大家介紹了C語言怎么連接兩個數組的內容,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • C++ 兩個vector對象拼接方式

    C++ 兩個vector對象拼接方式

    這篇文章主要介紹了C++ 兩個vector對象拼接方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • c++二叉樹的幾種遍歷算法

    c++二叉樹的幾種遍歷算法

    c++二叉樹的幾種遍歷算法,需要的朋友可以參考一下
    2013-02-02
  • C++函數重載的細節(jié)圖文詳解

    C++函數重載的細節(jié)圖文詳解

    函數重載即函數名相同,函數形參列表不同(函數特征標不同)的一類函數稱為函數重載,下面這篇文章主要給大家介紹了關于C++函數重載的相關資料,需要的朋友可以參考下
    2022-12-12
  • C語言打印楊輝三角示例匯總

    C語言打印楊輝三角示例匯總

    本文給大家匯總了2種使用C語言實現楊輝三角的方法,不過還是給大家推薦第一種,希望大家能夠喜歡。
    2016-02-02
  • windows下安裝QT及visual studio 2017搭建開發(fā)環(huán)境

    windows下安裝QT及visual studio 2017搭建開發(fā)環(huán)境

    這篇文章主要介紹了windows下安裝QT及visual studio 2017搭建開發(fā)環(huán)境,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • C++Smart Pointer 智能指針詳解

    C++Smart Pointer 智能指針詳解

    這篇文章主要為大家詳細介紹了C++Smart Pointer 智能指針,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++新特性詳細分析基于范圍的for循環(huán)

    C++新特性詳細分析基于范圍的for循環(huán)

    C++11這次的更新帶來了令很多C++程序員期待已久的for?range循環(huán),每次看到javascript,?lua里的for?range,心想要是C++能有多好,心里別提多酸了。這次C++11不負眾望,再也不用羨慕別家人的for?range了。下面看下C++11的for循環(huán)的新用法
    2022-04-04

最新評論