当前位置: 首页 > news >正文

网站双语版的怎么制作百度网页版怎么切换

网站双语版的怎么制作,百度网页版怎么切换,如何建立一个小程序的网站,网站建设竞价托管外包一. 函数指针变量 1. 函数指针变量的定义: 类比数组指针变量,数组指针变量是存放数组地址的变量,那么同理,函数指针变量就是存放函数地址的变量。 2. 创建函数指针变量: 函数是有地址的&#xff0…

一.   函数指针变量

1.   函数指针变量的定义:

类比数组指针变量,数组指针变量是存放数组地址的变量,那么同理,函数指针变量就是存放函数地址的变量。


2.   创建函数指针变量:

函数是有地址的,函数名就是函数的地址。此外,&函数名也是函数的地址,二者本质上一样,因此,它们的地址也一样。

bebbf71b42574f8993a56d032eaa9707.png

我们如果想将函数的地址存放起来,就需要创建函数指针变量了,以下是函数指针变量的创建方式(以上图函数为例):

int (* p)(int x,int y)=plus; 

对函数指针变量创建的理解,和对数组指针变量的理解是相似的:

P是一个变量,那么(*p)意思是这个变量是个指针变量;在括号中的(int x,int y)表示p这个指针变量指向的参数的类型和参数的个数。要注意的是,在这里写下x,y和不写都是可以的,只要表明参数的个数和类型就行;最后,最前面的int表示这个函数指针变量指向的返回类型是int类型的。


3.   函数指针变量的使用:

我们通过创建一个加法函数来学习函数指针变量的使用:

int plus(int x, int y)

return x + y;

}

int main()

{

     int x = 0; int y = 0;

     printf("请输入两个数");

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

     int (*p)(int x, int y) = plus;//创建一个函数指针变量来存放plus这个函数

     printf("%d", (*p)(x, y));

     return 0;

}

对于(*p)(x, y)这行代码,我们可以这么理解:

通过函数指针p调用指向的函数,并将x和y作为参数传给该函数。



二.   typedef关键字

在C语言中,很多时候有很多类型比较长,这时候,如果我们想将这些类型简化,就需要使用typedef关键字,以下是它的基本使用方法(以
unsigned int 为例)

typedef unsigned int uint;

这样,在之后敲写代码的时候,就可以用uint 来代替了。

注:对于数组指针和函数指针要命名时,方法稍有不同:

数组指针:eg:  typedef int(* name)[8]

函数指针:eg:  typedef int(* name)(int x,int y)



三.   函数指针数组

按照之前所说的理解方式,我们重点关注最后两个字:数组;所以,函数指针数组是存放函数指针变量的数组,下面,我们通过创建一个简单的计算器来学习函数指针数组的应用。


创建简单计算器的基本步骤:

(1)创建四个函数,分别可以进行加减乘除的运算

(2)创建一个菜单,表示计算器的开始界面

(3)让读者选择是否开始使用计算器

(4)让读者选择要使用的计算方法

(5)让读者输入要计算的数

(6)计算结果并给出答案


函数指针数组的创建和使用和函数指针变量类似,以下是其创建和使用格式:

创建:int (*p[5])(int x, int y)

由于[ ]的计算等级比*高,所以p先和[ ]结合,意味着p是一个数组;其再和*结合,意味着这是一个指针数组,而这个指针数组中存放的就是一个或多个函数的地址。这样也就意味着,所有存放的函数的参数和返回值必须是一样的,这样函数指针数组才可以使用。

使用:(*p[input])(x, y)

*p[input]的意思是指向这个函数指针数组中选择的input中的函数,用(x,y)将其赋值,并使用这个函数。


以下是参考代码:

int first(int x, int y)
{
    return x + y;
}
int second(int x,int y)
{
    return x - y;
}
int third(int x, int y)
{
    return x * y;
}
int forth(int x, int y)
{
    return x / y;
}
void menu(void)
{
    printf("******************************\n");
    printf("**********0.退出  ************\n");
    printf("**********1.加法  ************\n");
    printf("**********2.减法  ************\n");
    printf("**********3.乘法  ************\n");
    printf("**********4.除法  ************\n");
    printf("******************************\n");
}
int main()
{
    int input = 0;//选择数
    int x = 0;
    int y = 0;//要计算的数
    //创建一个函数指针数组来存放函数指针变量
    int (*p[5])(int x, int y) = { 0,&first,&second,&third,&forth };
    int a = 0;//创建一个数来接收函数传过来的变量,便于理解和打印
    do
    {
        menu();
        printf("请选择:");
        scanf("%d", &input);
        if (input <= 4 && input >= 1)
        {
            printf("请输入要计算的数\n");
            scanf("%d %d", &x, &y);
            a = (*p[input])(x, y);
            printf("计算结果是%d\n", a);
        }
        else if (input == 0)
        {
            printf("退出计算器\n");
        }
        else
        {
            printf("选择错误,请重新选择\n");
        }
    } while (input);
    return 0;



四.    几个基本概念的辨别
数组指针:是指针,里面存的是数组的地址
指针数组:是数组,里面存的是一个或多个指针(地址)
函数指针:是指针,里面存的是一个函数的地址
函数指针数组:是数组,里面存的是一个或多个函数的地址



数组指针:

创建:int (*p)[5]=&arr
使用:(*p)[想找的数组的下标数]



指针数组:

创建:int *arr[3]={arr1,arr2,arr3}
使用:arr[arr中数组的下标][arr 1/2/3中数组的下标]



函数指针:

创建:int (*p)(int x,int y)=&函数名;
使用:(*p)(x,y)



函数指针数组:
创建:int(*p[5])(int x,int y)={&函数名1,&函数名2}
使用:(*p[想找的函数名的下标])(x,y)



 

 

http://www.tj-hxxt.cn/news/43846.html

相关文章:

  • 哈尔滨网站建设制作搜狐视频
  • 网站开发工程师月薪平均青岛百度快速优化排名
  • 网站的产品图片怎样做清晰怎么去推广自己的公司
  • 重庆住房城乡建设厅网站首页营销排名seo
  • 建设部网站 绿色建筑评价表百度营销登录平台
  • 泉州模板建站源码seo教程自学网
  • 网站开发是否属于技术合同互联网十大企业
  • 查看网站有多少空间百度搜索引擎的网址是多少
  • 网站设置不安全google推广技巧
  • bgp 网站重庆百度推广电话
  • 自己电脑做服务器建网站郑州官网关键词优化公司
  • 网站网页优化怎么做郑州怎么优化网站排名靠前
  • 网站背景浙江seo博客
  • 义乌做网站海南网站推广
  • 如何创建一个免费的网站网页制作接单平台
  • 电子商务网站建设汉狮如何做好企业网站的推广
  • 做视频网站需要多大空间百度一下你知道
  • 广州网站建设如何做seo发帖网站
  • 免费手机网站制作浏览器下载大全
  • 外贸公司网站如何做网上推广南宁推广软件
  • 营销型网站建设费用优化排名推广关键词
  • 农家乐网站免费模板全渠道营销管理平台
  • 网站建设中系统实现做关键词优化的公司
  • 现在在百度做网站要多少钱百度云盘资源共享链接群组链接
  • 广告联盟做网站网站关键词优化推广哪家快
  • 怎么做网站的关键词个人免费开发app
  • 重庆建设网站竞价网络推广培训
  • 做京东电脑端首页链接的网站免费域名申请的方法
  • 单产品网站建设semikron
  • 北京商地网站建设公司太原seo快速排名怎么样