首页 > 编程知识 正文

指针函数和普通函数的区别,什么是指针函数

时间:2023-05-03 19:09:01 阅读:203667 作者:2124

指针函数

是指带指针的函数,本质上是一个函数,函数返回类型是某一类型的指针,其形式一般如下所示:

类型标识符 *函数名(参数列表)

函数指针

是指向函数的指针变量,本质上是一个指针变量,表示的是一个指针,它指向的是一个函数,其形式一般如下:

类型说明符 (*函数名)(参数)

例如,int(*pf)(int x),它的意思就是声明一个函数指针,而pf = func,则是将func函数的首地址赋值给指针。

引申1:数组指针和指针数组?

数组指针

就是指向数组的指针,它表示的是一个指针,它指向的是一个数组,它的重点是指针,如,int(*pa)[8]声明了一个指针,该指针指向了一个有8个int型元素的数组

指针数组

就是指针的数组,表示的是一个数组,它包含的元素是指针,它的重点是数组。如, int* pa[8]声明了一个数组,该数组的每一个元素都是int型的指针

引申2:函数模板和模板函数?

函数模板

是对一批模样相同的函数的说明描述,他不是某一个具体的函数

模板函数

是将函数模板内的“数据类型参数”具体化后得到的重载函数(就是由模板而来的函数)。

函数模板是抽象的,模板函数是具体的。

函数模板减少了程序员输入代码的工作量,是C++中功能最强的特性之一,是提高软件代码重用性的重要手段之一,一般形式如下:

template <模板类型形参表>

<返回值类型><函数名><模板函数形参表>

{

//函数体

}

其中<模板类型形参表>的类型可以是任何类型,包括基本数据类型和类类型。需要注意的是,函数模板并不是一个实实在在的函数,它是一组函数的描述,它并不能直接执行,需要实例化为模板函数后才能执行,而一旦数据类型形参实例化后,就会产生一个实实在在的模板函数。

引申3:类模板和模板类

类模板与函数模板类似,将数据类型定义为参数,描述了代码类似的部分类的集合,具体化为模板类后,可以用于生成具体的对象。类是对象的抽象,而类模板是类的抽象。

C++中引入模板类主要有以下5个方面的好处

(1)可用来创建动态增长或减小的数据结构

(2)它是类型无关的,因此具有很高的可复用性

(3)它在编译时而不是运行时检查数据类型,保证了类型安全

(4)它是平台无关的,可移植性强。

(5)可用于基本数据类型

引申4:指针常量/常量指针

指针常量

是指定义的指针只能在定义的时候初始化,之后不能改变其值。其格式为:

[数据类型][*][const][指针常量名称]

常指针的值不能改变,但是其指向的内容却可以改变

常量指针

指向常量的指针,因为常量指针指向的对象是常量,因此这个对象的值是不能够改变的。定义的格式如下:

[数据类型][const][*][常量指针名称]; 或[const][数据类型][*][常量指针名称];

需要注意的是,指针常量强调的是指针的不可改变性,而常量指针强调的是指针对其所指对象的不可改变性,它所指向的对象的值不能通过常量指针来改变。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。