函数指针,指针函数,数组指针,指针数组 区分
what /why/how
这些怎么区分:
函数指针:重点在指针,表示它是一个指针,它指向的是一个函数。eg: int (*fun)();
指针函数:重点在函数,表示它是一个函数,它的返回值是指针。 eg: int* fun();
数组指针:重点在指针,表示它是一个指针,它指向的是一个数组。int (*fun)[8];
指针数组:重点在数组,表示它是一个数组,它包含的元素是指针 itn* fun[8];
类模板(class template) - 模板类(template class) 区分:
类模板:重点在模板,表示它是一个模板,专门用于产生类的模子。
template <tempname T>
class Vector
{
.....................................
}
使用这个Vector模板就可以产生很多的class(类),Vector <int> 、Vector <char> 、Vector < Vector <int> >。
模板类: 重点在类,表示的是由一个模板生成而来的类。
例子:上面的Vector <int> 、Vector <char> 、……全是模板类。
函数模板(function template)——模板函数(template function)
函数模板的重点是模板。表示的是一个模板,专门用来生产函数。
eg:
template <tempname T>
void fun(T a)
{
…
}
在运用的时候,可以显式(explicitly)生产模板函数,fun(int) ,fun(double) , fun(shape*)。
也可以在使用的过程中由编译器进行模板参数推导,帮你隐式(implicitly)生成。
fun(1) //隐式的生成fun(int)
func(1.2) //隐式的生成fun(double)
func('a') //隐式的生成fun(char)
Shape* ps = new ch;
fun(ps); //隐式的生成fun(Shape*)
模板函数:重点在函数,表示的是由一个模板生成而来的函数。
面显式(explicitly)或者隐式(implicitly)生成的fun <int> 、fun <Shape*> ……都是模板函数。
从文章的讨论中,可以看到,名字是非常重要的,如果对名字的使用不恰当的话,会引起很多的麻烦和误解。有时候还是需要付出一定的代价。
转载于:https://www.cnblogs.com/wutengbiao/p/5029131.html
函数指针,指针函数,数组指针,指针数组 区分相关推荐
- C++ 笔记(14)— 指针(指针声明、取地址、取值、new/delete、NULL指针、指针运算、指针数组、数组指针、指针传递给函数、从函数返回指针)
1. 声明指针 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址.就像其他变量或常量一样,您必须在使用指 针存储其他变量地址之前,对其进行声明. 指针变量声明的一般形式为: type * ...
- Go 学习笔记(13)— 指针定义、指针特点、空指针、指针数组、指向指针的指针、指针作为函数入参
1. 复合数据类型 Go 语言基本的复合数据类型有指针.数组.切片.字典.通道.结构和接口等.格式如下: * pointerType // 指针类型, [n]elementType // 数组类型, ...
- 数组作为函数的参数传参时,数组名会退化为指针
1.数组作为函数的参数传参时,数组名会退化为指针 数组作为函数的参数传参时,数组名会退化为指针,数值传参时,需要把数值的长度一起传过去,另外,sizeof()运算符包含字符串的哨兵'/0',而strl ...
- C++基础8【难】 回顾:数组指针,函数指针,函数指针做函数参数 C语言多态
1,数组指针语法梳理 回顾,如何定义数组数据类型: 回顾,如何定义指针类型数组: 回顾,如何直接定义 一个指向数组类型的指针: 2,函数指针语法梳理 1)如何定义一个函数类型 2)如何定义一个函数指针 ...
- 【C 语言】数组 ( 多维数组做函数形参退化为指针过程 | int array[2][3] -> int array[][3] -> int (*array)[3] )
文章目录 一.多维数组做函数形参退化为指针过程 1.使用 int array[2][3] 作函数参数 2.使用 int array[][3] 作函数参数 3.使用 int (*array)[3] 作函 ...
- 【C 语言】二级指针作为输入 ( 指针数组 | 将 二级指针 作为函数输入 | 抽象函数业务逻辑 )
文章目录 一.打印 指针数组 中指针指向的字符串 二.字符串排序 三.代码示例 一.打印 指针数组 中指针指向的字符串 打印 指针数组 中指针指向的字符串 : 指针退化问题 : 传入二级指针 , 同时 ...
- 函数指针和函数指针数组及其应用
1. 函数指针 先来看一个简单的例子: int a=3; void *p=&a; 这是一个基础的不能再基础的例子.相信学过指针的都能看得懂.P是一个指针,指向a.a 是一个整形变量.函数指针和 ...
- 指针||指针和数组||指针和函数||指针、数组、函数 案例描述:封装一个函数,利用冒泡排序,实现对整型数组的升序排序
指针 指针的基本概念 指针的作用: 可以通过指针间接访问内存 内存编号是从0开始记录的,一般用十六进制数字表示 可以利用指针变量保存地址 指针变量的定义和使用 指针变量定义语法: 数据类型 * 变量名 ...
- 指针-指向函数指针数组的指针
先来回忆一下, 指针数组 int *p[n]; //定义了一个存放指向int的指针的数组//先找名字p //由于结合性[]>*,先和[]结合表示是一个数组 //再和*结合表示数组里存放的是指针 ...
- C语言 | 编写一个使用指针的c函数,交换数组a和数组b中的对应元素
================================================ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...
最新文章
- 超越GhostNet!吊打MobileNetV3!MicroNet通过极低FLOPs实现图像识别(文末获取论文)
- [linux] shell脚本编程-ubuntu创建vsftpd服务
- shell 常用命令语句
- git提交后的自动化流程构建
- 面试官 | 线程间是如何通信的?
- Docker创建一个镜像
- ubuntu终端安装python_Ubuntu linux下安装python3(手动安装)
- 利用python如何进行数据挖掘
- 【南方者】【考证】【软考】【系统规划与管理师】论文万能模板
- 图像识别--利用百度API免费调用
- Vo Mic|旧手机不要扔,一招秒变无线麦克风
- Codeforces 235C. Cyclical Quest 后缀自动机
- Caused by: java.lang.RuntimeException: Font asset not found fonts/SYFZLTKHJW.TTF
- 中小型超市系统中的分类/产品属性/扩展属性的数据库设计
- 用串口操作手机收发短信总结
- 起风了数字简谱用计算机,起风了钢琴简谱-数字双手-买辣椒也用券 高橋優
- python语言通俗理解_慢步学习,python语言编程,来扯扯语言的学习理解
- 详细图解,卷帘快门(Rolling Shutter)与全局快门(Global Shutter)的区别
- Golang实现发送微信公众号模板消息(每日一句和天气预报)
- 埃森哲董事长兼首席执行官南佩德因健康原因离任
热门文章
- 独角兽也未能幸免,2019“阵亡”新经济公司大盘点
- idea中刷新项目快捷键_解决 IDEA 使用过程中让你觉得不爽的一些问题
- 已知旋转矩阵求角度_如何推导旋转矩阵
- 031_vue编程式导航
- 018_TemplateModel
- mysql limit不要1_切记!MySQL中ORDER BY与LIMIT 不要一起用,有大坑
- 嵌入式linux硬件成本,嵌入式Linux驱动和固件有何区别?供应商是如何用固件压缩成本的?...
- java css是什么_Java 之 CSS
- 生鲜配送小程序源码_生鲜配送小程序开发
- php 清除数据表中所有数据库,清除一个数据库里所有表的数据