首页 > 其他分享 >c语言中函数指针用法

c语言中函数指针用法

时间:2023-11-28 09:47:58浏览次数:32  
标签:arr return 语言 int 用法 add swap printf 函数指针

#include <stdio.h>
#define MAX 10

void swap(int *x, int *y)
{
    int temp;
    temp = *x;
    *x = *y;
    *y = temp;
}

void fun(int *height, int *age)
{
    int n = 10;
    *height = n * 10;
    *age = n * 2000;
}

int *createArray(int size)
{
    int i;
    int *arr = (int *)(malloc(sizeof(int) * size));
    for (i = 0; i < size; i++)
    {
        arr[i] = i * i;
    }
    return arr;
}

int *sumArray(int arr)
{
    return 0;
}

int add(int x, int y)
{
    return x + y;
}

int substract(int x, int y)
{
    return x - y;
}

int multiply(int x, int y)
{
    return x * y;
}

int divide(int x, int y)
{
    return x / y;
}

int module(int x, int y)
{
    return x % y;
}

typedef int (*operation_fun)(int, int);

void main()
{
    int num = 0;
    int (*ptr_add)(int, int) = add;
    void (*ptr_swap)(int, int) = swap;

    int a = 100, b = 200;
    int sum = ptr_add(a, b);
    printf("the result is %d\n", sum);
    ptr_swap(&a, &b);
    printf("before swap a is %d, b is %d\n", a, b);
    swap(&a, &b);
    printf("after swap a is %d, b is %d\n", a, b);

    operation_fun operations[] = {
        &add,
        &substract,
        &multiply,
        &divide,
        &module};

    // int (*operations[])(int, int) = {add, substract, multiply, divide, module};
    // int (*operations[])(int, int) = {&add, &substract, &multiply, &divide, &module};

    char *arr[] = {"add", "substract", "multiply", "divide", "module"};

    int result = 0;
    int i, j;
    for (i = 0; i < 5; i++)
    {
        result = operations[i](10, 20);
        printf("%s of two number result is %d\n", arr[i], result);
    }

    int p_height;
    int p_age;
    fun(&p_height, &p_age);
    printf("height is %d and age is %d\n", p_height, p_age);

    int c = 30;
    int *ptr1 = &c;
    int **ptr2 = &ptr1;

    printf("c is %d\n", c);
    printf("ptr1 is %d\n", *ptr1);
    printf("ptr2 is %d\n", **ptr2);
}

 

标签:arr,return,语言,int,用法,add,swap,printf,函数指针
From: https://www.cnblogs.com/dogingate/p/17861144.html

相关文章

  • R语言和Python对copula模型Gaussian、t、Clayton 和 Gumbel 族可视化理论概念和文献计
    原文链接:http://tecdat.cn/?p=27240 原文出处:拓端数据部落公众号最近我们被客户要求撰写关于copula的研究报告,包括一些图形和统计输出。本文包含一些直观的示例来说明copula理论的核心概念。以下是脚本及其各自用途的简短列表:首先演示如何使用高斯copula来模拟具有任意......
  • C语言(二):整型变量的数值范围
    #include<stdio.h>intmain(){ inta=0; while(a<a+1) { a++; } printf("int类型的最大值是:%d\n\n",a); printf("int类型的最大值+1是:%d\n\n",a+1); intb=0; while(b>b-1) { b--; } printf("int类型的最小值是:%d\n\n",b);......
  • 《初学C语言第8天》
    ////代码调试——调用堆栈//#include<stdio.h.>//voidtest2()//{// printf("hehe");//}//voidtest1()//{// test2();//}//voidtest()//{// test1();//}//intmain()//{// test();// return0;//}////研究程序死循环的原因//#include<stdio.h>//#in......
  • 软件测试/人工智能|LangChain Memory模块:开启语言数据的存储与回忆之旅
    简介大多数大模型应用中都包含对话功能,而对话功能的基础就是参与者能够基于已经发生的对话和获取到的知识产生新的对话内容。更复杂一点的场景中对话者甚至需要具有一个完整的对世界的认知,再根据对话中的信息对认知不断的进行迭代更新。随着人工智能和自然语言处理技术的飞速发展,语......
  • python基础_03_编程语言
    【一】编程语言的分类(1)机器语言01.什么是机器语言机器语言是计算机可理解的语言,是直接操作硬件的语言。即,直接与底层硬件沟通交流。由于计算机基于电工作,电有高低频之分,高电频记为0,低电频记为1。通过高低频变换操作硬件。#机器语言控制逻辑机器语言通过改变各个针脚......
  • 通过Python进行文本数据分析和自然语言处理
    在当今信息时代,文本数据已经成为获取和传递信息的重要方式之一。而Python作为一种功能强大的编程语言,可以利用其丰富的文本分析库和自然语言处理工具,对文本数据进行有效的挖掘和分析。本文将介绍如何使用Python进行文本数据分析和自然语言处理。1.文本数据预处理在进行文本数据分析......
  • c语言中向函数传递二维矩阵的方法
    在C语言中,向函数传递二维数组有几种方式,这主要取决于二维数组的大小是否已知。下面是几种常见的方式:  1)如果二维数组的大小已知,那么你可以在函数参数中直接指定数组的大小。例如: voidfunc(intarr[10][10]){...} 在这个例子中,func函数接受一个10x10的二维数组作为参数......
  • 选择法排序——c语言
    #include<stdio.h>intmain(){inti,min,z,j,temp,k,n=11;intbe[]={1,4,6,9,13,16,19,28,40,100,0};scanf("%d",&z);be[10]=z;for(i=0;i<n-1;i++){min=i;for(j=i+1;j<n;j++){if(be[min]......
  • 各个语言的优缺点
    各个语言的优缺点(1)机器语言1.优点执行效率最高编写的程序可以被计算机无障碍理解、直接运行,执行效率高。2.缺点开发效率最低复杂,开发效率低跨平台性差贴近/依赖具体的硬件,跨平台性差学习成本大编出的程序都是0/1代码,数量多还易出错同时还要理解原码、......
  • c语言
    /**@Author:[email protected]*@Date:2023-11-1013:51:34*@LastEditors:[email protected]*@LastEditTime:2023-11-2709:19:51*@FilePath:\c-learn\zhizhen.c*@Description:这是默认设置,请设置`customMade`,打开k......