指针函数:本质是一个函数,函数的返回值是某一类型的指针。形式一般如下: 类型标识符 * 函数名(参数列表) 如 int * f(x,y).
函数指针:本质上是指针,它指向的是一个函数。形式一般如下:类型标识符 (*函数名)(参数) 如 int (*pf)(int x)。
数组指针: int (*p)[ 4 ].
指针数组: int * p [ 4 ] .
函数模板:对一批模样相同的函数的说明描述,他不是某一个具体的函数,不能具体执行,需要实例化为模板函数后才能执行,而一旦数据类型形参实例化以后,就会产生一个实实在在的模板函数;减少了程序员输入代码的工作量
模板函数:则是将函数模板内的‘数据类型参数’具体化后得到的重载函数,就是由模板而来的函数。
简单的说,模板函数是具体的,而函数模板是抽象的。
类模板:描述了代码类似的部分类的集合,具体为模板类后,才能生成具体的对象。
类模板不是一个具体的类,是对类的一种具体描述,必须用类型参数将其实例化为模板类后,才能用来生成具体的对象。简而言之,类是对象的抽象,类模板是类的抽象。
C++ 中引入模板类主要有以下几个方面的内容:
1) 可用来创建动态增长或减小的数据结构。
2)它是与类型无关的,因此具有很高的可复用性。
3)它是与平台无关的,可移植性强。
4)在编译时而不是运行时检查数据类型,保证了类型的安全。
5)可用于基本的数据类型。
指针常量是指定义的指针只能在定义的时候初始化,之后不能改变其值。
例如:char * const p1 int * const p2.... 常指针的值不能改变,但是其所指向的内容却可以改变。
常量指针是指向常量的指针,因为常量指针指向的对象是常量,因此这个对象的值是不能改变的。
如:int const *p const int *p
指针常量强调的是指针的不可改变性,指针指向的内容具有可变性。而常量指针强调的是指针所指向对象的不可改变性,它所指向的对象是不能通过常量指针来改变的。