必威体育Betway必威体育官网
当前位置:首页 > IT技术

C/C++函数指针与指针函数等区别

时间:2019-08-13 15:41:03来源:IT技术作者:seo实验室小编阅读:73次「手机版」
 

函数指针

(1)函数指针指针函数

(1)函数指针

一种特殊的指针,它指向函数的入口;

/*
* 定义一个函数指针p,只能指向返回值为int,形参为两个int的函数
*/
int (*p)(int,int);
/* 
 * 求最大值 
 * 返回值是int类型,返回两个整数中较大的一个 
 */  
int max(int a, int b) {  
    return a > b ? a : b;  
}  

/* 
 * 求最小值 
 * 返回值是int类型,返回两个整数中较小的一个 
 */  
int min(int a, int b) {  
    return a < b ? a : b;  
}

int main(){
    f = max; // 函数指针f指向求最大值的函数max  
    int c = (*f)(1, 2);

    f = min; // 函数指针f指向求最小值的函数min  
    c = (*f)(1, 2); 
}

(2)指针函数

返回指针的函数,一个函数,它的返回值是指针;

//这是一个形参为两个int类型,返回值是int型指针的函数
int *p(int,int);
/* 
 * 指针函数的定义 
 * 返回值是指针类型int * 
 */  
int *f(int a, int b) {  
    int *p = (int *)malloc(sizeof(int));  
    memset(p, 0, sizeof(int));  
    *p = a + b;    
    return p;  
} 

int main(){
    int *p1 = NULL;  
    p1 = f(1, 2);  
}

(2)指针数组数组指针

(1)指针数组

//一个数组,它包含的元素是指针
int* point[10]; 

(2)数组指针

//一个指针,它指向的是一个数组
int (*point)[10]; 

(3)函数模板与模板函数

(1)函数模板

表示一个模板,专门用来生成函数;

template <typename T> 
void fun(T a) 
{ 
}

(2)模板函数

是一个函数,表示由一个模板生成而来的函数;

如:fun <int> , fun <double> , fun <Shape*>等;

(4)类模板与模板类

(1)类模板

表示一个模板,专门用于生产类的模板;

template <typename T> 
class vector 
{ 
}; 

(2)模板类

是一个类,表示由一个模板生成而来的类;

如:Vector<int> , Vector<double> , Vector<Shape*>等;

相关阅读

LSF TXB TXS区别

LSF TXB TXS区别 https://e2e.ti.com/support/logic/f/151/t/719537?-FAQ-What-is-the-difference-between-TXS-TXB-and-LSF-dev

OAuth 2.0:Bearer Token、MAC Token区别

Access Token 类型介绍 介绍两种类型的Access Token:Bearer类型和MAC类型 区别项 Bearer Token MAC Token 1 (优点) 调用简

一文看懂AR/VR/MR的区别,设计过程都有哪些坑?

VR/AR/MR傻傻分不清。虚拟现实(Virtual Reaity)、增强现实(Augmented Reality)、混合现实(Mixed Reality)这些长得如此相似的名词,雷锋

json.dump()与json_dumps()区别

json 模块提供了一种很简单的方式来编码和解码JSON数据。 其中两个主要的函数是 json.dumps() 和 json.loads()。 1.json.dumps将

基础 HTML之目录问题(相对路径和绝对路径区别)

导读 复习HTML知识的时候,URL的路径的写法是我们经常会用到的一块内容。相对路径和绝对路径的问题不难,只要明白各自的道理,同时清

分享到:

栏目导航

推荐阅读

热门阅读