首页 > 其他分享 >《初学C语言第28天》

《初学C语言第28天》

时间:2023-12-15 17:01:01浏览次数:31  
标签:arr return int 28 C语言 初学 数组 printf 函数指针

////////————————6.函数指针数组

//////函数指针数组

//////数组是一个存放相同类型数据的存储空间,那我们已经学习了指针数组,

//////比如:int* arr[10];数组的每个元素是int*

//////那要把函数的地址存到一个数组中,那这个数组就叫函数指针数组,那函数指针的数组如何定义呢?

//int (*parr1[10])();

////答案是:parr1

////parr1 先和[] 结合,说明 parr1是数组,数组的内容是int (*)() 类型的函数指针。

//#include<stdio.h>

//int Add(int x, int y)

//{

// return x + y;

//}

//int Sub(int x, int y)

//{

// return x - y;

//}

//int Mul(int x, int y)

//{

// return x * y;

//}

//int Div(int x, int y)

//{

// return x / y;

//}

//int main()

//{

// int(*p)(int, int) = Add;//p为函数指针,int(*)(int,int)为函数指针类型

// int(*arr[4])(int, int) = {Add,Sub,Mul,Div};//arr是函数指针的数组

// //Add, Sub, Mul, Div分别为下标0,1,2,3的数组元素。并且这四个元素分别能找到他们对应的函数,

// // 因此在访问函数指针数组元素的时候,其实能够找到这些函数的地址,然后就可以调用这些函数

// int i = 0;

// for (i = 0; i < 4; i++)

// {

//  int ret = arr[i](8,4);//随着i的增加,可以访问所有的数组元素,并调用函数。

//  //此处的arr[i]可以换成*arr[i],并且arr[i]等同于函数

//  printf("%d\n",ret);

// }

// return 0;

//}

////////计算器(引用函数指针数组)

//#define _CRT_SECURE_NO_WARNINGS

//#include <stdio.h>

//int menu()

//{

//

//    printf("*************************\n");

//    printf(" 1:add           2:sub \n");

//    printf(" 3:mul           4:div \n");

//    printf("*************************\n");

//    return 0;

//}

//int add(int a, int b)

//{

// return a + b;

//}

//int sub(int a, int b)

//{

// return a - b;

//}

//int mul(int a, int b)

//{

// return a * b;

//}

//int div(int a, int b)

//{

// return a / b;

//}

//int main()

//{

//    int x, y;

//    int i = 1;

//    int ret = 0;

//    int(*p[5])(int x, int y) = { 0, add, sub, mul, div }; //转移表:提供跳转的功能

//    //由于菜单本设计中,我们设置的函数均有对应数字,所以要仔细考虑到上述问题,

//    // 因此,数组元素设置为5个,并且,add的下标遵循菜单栏的设计进行更改,使其下标为1

//    //i之所以初始值为1,add的下标对应只是原因之一,第二个原因是,while()语句,

//    // ()里为不为0的数才会执行,因此i的初始值就没使用1

//    while (i)

//    {

//        menu();

//        printf("请选择:");

//        scanf("%d", &i);

//        if ((i <= 4 && i >= 1))

//        {

//            printf("输入操作数:");

//            scanf("%d %d", &x, &y);

//            ret = (*p[i])(x, y);

//        }

//        else

//            printf("选择错误\n");

//        printf("ret = %d\n", ret);

//    }

//    return 0;

//}

////////——————————————7.指向函数指针数组的指针

////指向函数指针数组的指针是一个指针

////指针指向一个数组 ,数组的元素都是函数指针;

//#include<stdio.h>

//void test(const char* str)

//{

// printf("%s\n", str);

//}

//int main()

//{

// //函数指针p

// void (*p)(const char*) = test;

// //函数指针的数组pArr

// void (*pArr[5])(const char* str);

// pArr[0] = test;

// //指向函数指针数组pArr的指针ppArr

// void (*(*ppArr)[5])(const char*) = &pArr;

// return 0;

//}

标签:arr,return,int,28,C语言,初学,数组,printf,函数指针
From: https://blog.51cto.com/KKhahaha/8843169

相关文章

  • 国标GB28181协议LiteCVR视频监控技术与视频识别技术的应用
    视频监控技术是指通过安装摄像头和其他相关设备,对特定区域进行实时的视频监控和录制。视频监控技术主要包括视频采集、视频传输、视频存储和视频回放等功能。项目-mark5348以LiteCVR安防视频平台为例,智慧安防平台LiteCVR支持高清视频的接入和传输、分发,平台采用了开放式的网络......
  • c语言递归函数
    @TOC前言一、递归的理解:递归函数:函数自己调用自己的,叫做递归调用。例如:voidfun(void){printf("Hellow!");fun();}二、循环角度理解递归:递归的本质就是循环。循环可以完全代替递归,但是递归在某些情况下代码会更简洁一点。可控递归三要素:voidfun(inti)//1.循环控制变......
  • 实验6 c语言结构体,枚举应用编程
    task4源代码1#include<stdio.h>2#include<string.h>3#defineN1045typedefstruct{6charisbn[20];//isbn号7charname[80];//书名8charauthor[80];//作者9doublesales_price;//......
  • WVP+ZLMediaKit实现摄像头GB28181推流播放
    一、介绍概述WVP-PRO基于GB/T28181-2016标准实现的流媒体平台,依托优秀的开源流媒体服务ZLMediaKit,提供完善丰富的功能。GB/T28181-2016中文标准名称是《公共安全视频监控联网系统信息传输、交换、控制技术要求》是监控领域的国家标准。大量应用于政府视频平台。通过28181......
  • 【2023潇湘夜雨】WIN11_Pro_23H2.22631.2861软件选装纯净版12.14
    【系统简介】=============================================================1.本次更新母盘来自WIN11_Pro_23H2.22631.2861。2.增加部分优化方案,手工精简部分较多。3.OS版本号为22631.2861。精简系统只是为部分用户安装,个别要求高的去MSDN下。4.集成《DrvCeo-2.15.0.5》网卡版、......
  • 网络入门初学第一期
    网络入门初学第一期正式学习网络也有一段时间了,不能盲目的埋头苦学,为了学完而学,今天就根据之前的课程做一期总结对之前的知识进线汇总,当然以下内容均为个人理解首先我们来谈谈PC【个人电脑】在很久很久以前,我们的电脑只是本地的进行工作与运算的 当然,如果仅仅是一台电脑,对......
  • 实验6_C语言结构体、枚举应用编程
    4.task_41#include<stdio.h>2#defineN1034typedefstruct{5charisbn[20];6charname[80];7charauthor[80];8doublesales_price;9intsales_count;10}Book;1112voidoutput(Bookx[],intn);13voids......
  • 128. 最长连续序列
    1.题目介绍给定一个未排序的整数数组\(nums\),找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 \(O(n)\)的算法解决此问题。示例1:输入:nums=[100,4,200,1,3,2]输出:4解释:最长数字连续序列是[1,2,3,4]。它的长度为4。示例......
  • 实验6 C语言结构体、枚举应用编程
    实验任务41#include<stdio.h>2#defineN1034typedefstruct{5charisbn[20];//isbn号6charname[80];//书名7charauthor[80];//作者8doublesales_price;//售价9intsales_count;......
  • c语言:判断一个数是不是素数
    首先了解一下素数素数(PrimeNumber)是指在大于1的自然数中,除了1和它本身外,不能被其他自然数整除的数。换句话说,一个大于1的自然数,只能被1和它本身整除,那么这个数就是素数。在数学中,素数的分布具有规律性,通常将小于10^6的素数称为小素数,将小于10^18的素数称为大素数。在计算机科学......