一些常见的易于混淆的概念

一、函数指针与指针函数的区别
函数指针是指指向函数的指针变量,其本质是一个指针变量,表示的是一个指针,它指向的是一个函数。
例如:int (*pf)(int x),它的意思是pf=func,将func函数的首地址赋给指针

指针函数是指带指针的函数,本质上是一个函数,函数的返回类型是某一类型的指针。
例如:int *f(x,y),声明一个函数f(x,y),函数的返回类型是指向int的指针

二、数组指针/指针数组
数组指针就是指向数组的指针,它表示的是一个指针,它指向的是一个数组
例如:int (*pa)[8]

指针数组就是指针的数组,表示一个数组,它所包含的元素是指针
例如:int *ap[8]

三、函数模板/模板函数
函数模板是对一批模样相同的函数的说明描述,它不是一个具体的函数,是抽象的。
模板函数则是将函数模板内的“数据类型参数”具体化后得到的重载函数,是具体的。

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

五、指针常量/常量指针
指针常量是指定义的指针只能在定义的时候初始化,之后不能改变。
例如:char* const p1;int* const p2;
声明的p1、p2对象是常量,而对象的数据类型是指针,常指针的值不能改变,但是其指向的内容却可以改变。

常量指针是指指向常量的指针,因为常量指针指向的对象是常量,因此这个对象的值是不能够改变的。
例如:int const*p;const int *p;

指针常量强调的是指针的不可变性,而常量指针强调的是指针对其所指向的对象的不可变性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值