指针初始化(指针初始化是什么意思)

更新时间:2023-03-02 11:25:38 阅读: 评论:0

函数、指针、数组结合到一起就是函数指针数组。

首先它是一个数组,这个数组的元素是函数指针(指向函数的指针)。

如:

int(*fn[])(int,int);

一般的函数指针是这样定义的:

int(*fn)(int,int);

一般的指针函数是这样定义的:

int* fn (int,int);

表示一个函数,它的返回值是一个指针:int*。

运算符的优先级不仅体现在一般的表达式中,也体现在类似上面的声明表达式中。指针运算符*的优先级要低于函数运算符()。

所以对于int* fn (int,int);

它最终是一个函数,是一个返回指针的函数。

对于int(*fn)(int,int);

用括号来提升了优先级,它最终是一个指针,是一个指向函数的指针,称为函数指针。

对于int(*fn[])(int,int);

先要分析括号内的部分,*的优先级低于[],所以它最终是一个数组,是一个数组元素是指针的数组,其中的指针是函数指针,所以最终它是一个函数指针数组。

基本思路是从内核开始层层外推,层层加定语。也就是:数组→指针数组→函数指针数组:数组元素是函数指针,指针是指向函数的指针。

函数指针数组的初始化:

int(*fn[])(int,int)={add,minus,divide,multiple}; //add,minus,divide,multiple是函数名

以下是实例:

#include<iostream>using namespace std;int add(int a,int b){return a+b;}int minus(int a,int b){return a-b;}int divide(int a,int b){return a*b;}int multiple(int a,int b){return a/b;}int(*fn[])(int,int)={add,minus,divide,multiple};int cal(int a, int b, int opp){ return fn[opp](a,b);}void main(){ int a=5, b=3; cout<<cal(a,b,0)<<" "<<cal(a,b,1)<<" "<<cal(a,b,2)<<" "<<cal(a,b,3)<<" "<<endl; system("pau");}//8 2 15 1

-End-

本文发布于:2023-02-28 21:07:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/167772753899870.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:指针初始化(指针初始化是什么意思).doc

本文 PDF 下载地址:指针初始化(指针初始化是什么意思).pdf

标签:初始化   指针
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|