自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 什么是app测试,什么是web测试,app测试和web测试有什么区别

App则是手机端,需要考虑:安卓,IOS双端,不同品牌,手机机型,操作系统版本,分辨率(常见的兼容方式是兼容市场占用率前N位的手机即可,也可以挑选条件不同,尽量覆盖全部不同条件的一些手机),有时候也可以使用到兼容性测试工具,但WEB兼容性工具多用IETester等工具,而App兼容性测试会使用Testin这样的商业工具也可以做测试。WEB因为是测试兼容浏览器,所以需要使用不同内核的浏览器进行兼容性测试(常见的是兼容IE6,IE8,chrome,firefox)操作类型测试:如横屏测试,手势测试。...

2022-08-04 16:48:24 769 1

原创 功能测试,什么是功能测试?什么是黑盒测试?一遍文章让你彻底搞懂功能测试

功能测试什么是功能测试?怎么做好功能测试注意事项1.明确需求2.模块划分3.注意异常和错误情况测试方法1.场景法单一场景-单一功能点测试复合场景-功能流程测试2.边界值法3.等价类5.其他方面什么是功能测试?功能测试又称黑盒测试,就是不知道代码,专注于产品能不能正常使用其功能的测试。怎么做好功能测试其实所有的功能测试都有一定规律套路可循,下面我总结了一些做好功能测试的方法和要点,都利用好足以覆盖日常功能测试百分之80的情况首先提出一个问题,也是面试常见问题,XXX怎么测,比如淘宝购物车怎么测?一个

2022-03-27 16:38:28 5783 1

原创 QT常用布局layout快速入门

layout继承图用layout布局实现下面的窗口效果

2021-10-05 19:57:47 4392

原创 虚幻4C++打印输出日志

在当前屏幕视口中输出GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TEXT(“This is an on screen message!”));在编辑器output log窗口中输出UE_LOG(LogTemp, Log, TEXT(“Your message”));

2021-01-24 20:21:55 656

原创 虚幻C++限定蓝图类选项里的可选类型

通过继承C++的蓝图类里需要限定,可选的类的时候只需要在声明时加上TSubclassOf,就能使得蓝图类里选择类的时候只能选择<>里的类型或者它的子类只能选择这种类型,或者是它的子类

2021-01-21 15:34:50 158

原创 蓝图本地事件

蓝图可实现事件,是在C++中写函数声明,然后在蓝图脚本里面写具体逻辑实现的(什么是蓝图可实现事件),而蓝图本地事件,就是在C++中声明,然后在C++中也有默认实现,也能在蓝图中重写的函数。在UFUNCTION的宏内加入参数,BlueprintNativeEvent,那么它就是一个蓝图本地函数现在可以在C++中为它写默认实现虽然函数声明的时候函数名写的是:TestNativeEvent,但是我们为它做C++默认实现的时候,不能直接写TestNativeEvent,而是写TestNativeEven

2021-01-19 16:09:09 291 1

原创 虚幻4C++调用蓝图中的事件(蓝图可实现事件)

如果想用蓝图调用C++里面的函数只需要,创建继承C++类里面的蓝图类即可,反过来用C++调用蓝图中实现的事件需要在UFUNTION的括号中添加上BlueprintImplementableEvent这个参数虽然有绿色波浪线表示着C++中没实现,但是编译代码后并不是报错,而且打开对应这个C++类的蓝图类,可以呼出这个Test事件,可以看到它并没有像Test2一样,被标识为蓝图中的自定义事件,这就是蓝图可实现事件,在C++中定义,转而在蓝图中提供实现事件触发后的逻辑这么做之后,蓝图中自定义事件将不允许

2021-01-16 20:14:59 1867

原创 二分查找原理和递归和循环代码实现

原理:对有序的数据定一个开始查找的初始位置,一个结束位置,在取他们的中间数,然后拿需要查找的数和这个中间数比较,在根据比较结果在划定中间数。比如一个数组有1到91 2 3 4 5 6 7 8 9 查找8。查找的初始位置是1下标就是[0],结束位置是9,下标是[8],中间数就是([0]+[8])/ 2 = [4],下标是[4],也就是5先拿8和中间数5比较,如果比5大,就可以排除掉小于5的所有情况,于是可以把查找的初始位置划分到5前面一个元素,也就是下标[4+1] = [5],数是6的位置。这样

2021-01-11 22:46:05 244 1

原创 UE4中HUD、UMG、Slate之间的区别

这是目录SlateUMGHUDSlateSlate是为编辑器专门制作的窗口UI框架(以前的UE编辑器使用了Window的库),但它也可以用在游戏中。 但是Slate类不在UObject环境之外而在反射系统之外,这就是为什么它需要UMG包装来使其与蓝图一起工作。UMGUMG是Slate的蓝图延伸 ,上面可以直接在画布上添加文件按钮等等,方便快捷制作出UI界面同时可以在蓝图图表处添加点击事件等等的逻辑HUDHUD Canvas是来自UE3(甚至可能更老)的东西,在UMG被引入之前处于UE4中,

2021-01-10 15:25:51 6189

原创 UE4的GamePlay框架概述

GameInstance(游戏实例)贯穿一个游戏始终的东西,不关关卡是否在进行,是否在等待界面,是否已经结束了,都是可以访问到GameInstance的,适合放置一些独立于关卡的信息,以及一些功能,例如,显示UI登录,UI独立于任何关卡,比如刚打开一个游戏进入主界面/登录界面,就可以把显示它的逻辑放在GameInstance里。GameMode (游戏模式)指的是游戏玩法规则,里面通常会写明游戏玩法,游戏进行的规则,胜负条件等等,游戏模式是和关卡绑定的,一个关卡只能有一个游戏模式,但是一整个游戏可以有

2021-01-10 14:44:30 2878 2

原创 虚幻4蓝图如果使用EventDispatcher事件分发器

EventDispatcher事件分发器:字面意思,就是在事件触发时,会通知给所有订阅过相关事件的对象。这篇博客,将实现在GameMode创建分发器,场景中的Pawn发送事件触发通知给自己和Actor1. 创建Event Dispatcher在GameMode蓝图中创建Event Dispatcher,并更名为"EventDispatcher",添加一个输入参数,更名为"event",并将参数类型设置为String。2.给pawn创建回调函数在pawn蓝图中定义一个事件触发时的回调函数,传入发射

2020-12-24 21:44:01 1199

原创 虚幻4蓝图脚本中,函数,事件,宏的区别

函数,事件,宏的区别语法上的区别执行引脚:返回值延迟节点允许访问范围逻辑区别总结语法上的区别执行引脚:调用函数和发射事件只能有一个执行引脚,而宏在调用的时候可以有很多执行引脚进入或者输出。返回值事件被触发了在执行触发事件的逻辑之后,没有返回值,函数和宏有返回值(所以当我们需要返回值的时候,我们应该使用函数。关于这个返回值还有几个有趣的地方,在UE4里函数的图标为一个小写的f,而事件的图标为一个箭头,如果我们在事件中去调用函数,若这个函数没有返回值,你会发现此时它的图标会是箭头,也就是说系统是把它

2020-12-22 22:30:11 3495 1

原创 虚幻4C++核心类pawn类,解读

在看这篇博客时需要对Actor类有了解(Actor类解读)pawn类在游戏中是可以被控制的一类对象,他继承自actor类,和actor属于都可以被放置在游戏场景中的对象,只不过多了允许被玩家或者AI控制这种特性新建一个C++类选择继承pawn类创建完成之后可以看到默认创建完成之后,他和默认的Actor类相比仅仅多了一个叫SetupPlayerInputComponent的虚函数,就是通过这个函数,玩家能实现对pawn对象的输入并且控制接下来可以在C++类里实现控制自己定义的Pawn先进行项目

2020-12-20 22:24:47 1070

原创 虚幻4C++代码导致虚幻4编辑器崩溃打不开的应对办法

在虚幻4中使用C++,因为添加了不当代码而导致虚幻4编辑器崩溃,并且打不开,应该怎么办可以直接在文夹里找到对应崩溃的项目,可以通过sln后缀名文件直接打开整个项目进行修改,也可以点进Source文件夹里找到对应的.cpp文件进行修改,修改完代码之后在编译,编译完之后,基本都能解决,如果还没解决可以尝试删除掉图中的Binaries文件夹,这个文件夹放的是C++类编译的缓存文件在点右键.uproject的编辑器开启文件,点第三项,根据visual studio重新构建项目。这样一般的因为代码导致虚幻

2020-12-20 20:54:39 1962

原创 虚幻4基础物理设置,和碰撞检测

图像加上一些数学运算,一些逻辑,一些“物理”效果来模拟现实中的场景,最后和人进行交互,在加上一些奇思妙想这就是游戏。这篇博客会介绍虚幻4中基础的物理系统,和两种新手入门使用的碰撞检测方式物理系统开启给对象力和力矩通过物理碰撞简单碰撞复杂碰撞碰撞预设改变坐标的碰撞物理系统开启在虚幻4中如果需要场景中某个对象能获得现实中的物理效果,必须先开启实例对象细节面板中的模拟物理才行。默认是没勾选的,只要勾选上之后,当前的实例对象在场景中便有了现实中的物理效果,这个时候就可以测试这个对象是否启动了物理,当没启动物理的

2020-12-16 00:06:42 2414

原创 虚幻4蓝图通信:蓝图通信的方法,什么是蓝图通信,蓝图怎么访问获取另一个蓝图里的数据

虚幻4蓝图通信的方法获取场景中具体的某一个Actor实例获取到指定类里在场景里的首个Actor实例获取类在场景中的全部Actor实例什么是蓝图通信:在虚幻的蓝图模式下如果一个蓝图需要访问或者引用到另一个蓝图里的数据或者是函数时,要让他们之间建立关系,这就是蓝图通信获取场景中具体的某一个Actor实例创建一个类型为我们需要通信的蓝图类的名称的对象引用,并点击眼睛设置为外部可编辑,然后在具体对象的细节面板我们可以通过一个选取吸管,然后,在场景中点击具体的相关对象实例,就能当前蓝图脚本访问被取到的具体对

2020-12-14 16:21:46 1834

原创 虚幻4 C++常用UPROPERTY,UFUNCTION宏内的参数

标题在蓝图脚本里面访问权限修饰在蓝图类细节面板中访问权限修饰在实例化对象细节面板中访问权限修饰在蓝图类和实例化对象中都可以编辑在虚幻4定义的C++类中,可以定义一些数据和函数,这些数据和函数通常不仅仅是在C++类中访问,也要给蓝图类或者在场景中具体的对象实例中通过编辑细节面板修改,这时候往往需要在相关的UPROPERTY宏内添加上控制访问权限的参数准备知识什么是蓝图类,什么是实例化对象:把准备好的蓝图类拖拽到场景当中时,表示实例化了一个对象在蓝图脚本里面访问权限修饰UCLASS(Blueprinta

2020-12-12 22:51:36 1680

原创 虚幻4蓝图类,蓝图脚本,实例化对象,和C++类的关系和区别

标题什么是蓝图类什么是蓝图脚本蓝图和C++的抉择刚开始学习的时候把C++类和蓝图类,蓝图脚本的概念混淆了什么是蓝图类蓝图类又叫蓝图系统是包裹一个游戏对象数据逻辑和各种内容及可编辑属性为一体的容器,通常命名以BP_开头,图标下带有蓝色条纹可以展开独立编辑页面,通常由视口和事件图表等组成什么是蓝图脚本在蓝图类的事件图表分栏,以很多小格子划分的背景,可以和C++代码一样可以添加数据类型,通过节点之间的连线实现代码,函数调用的逻辑的功能的就是蓝图脚本蓝图和C++的抉择虽然蓝图脚本的逻辑通过C+

2020-12-11 21:48:01 3075

原创 虚幻4C++,所有对象的根类Object

在虚幻4中所有对象都有一个根类,那就是objcet类,它是一个最基础的对象,不能被放置在视口的场景中,甚至不能创建蓝图类,是最简单最纯粹的根类。创建一个C++类选择继承Object类,可以看到只能申明一些简单的数据类型或者函数可以看到不允许创建蓝图类如果要允许它可以创建蓝图类需要做一些特殊的宏操作当添加上UCLASS(Blueprintable)这个宏时,它就可以创建扩展蓝图类创建出了一个以MyObject C++类的扩展蓝图类但是现在还不能在这个蓝图类的蓝图脚本里面访问到C++里面定义

2020-12-11 20:53:08 386

原创 虚幻4一个简单的actor,C++类解读

在虚幻4中创建一个C++类,选择继承actor类之后,我们会得到引擎中自动生成这样的代码之后在编辑器界面可以看到可以直接创建基于这个C++类的蓝图类,并不是像创建object类的定义,要在宏定义加上UCLASS处括号里加上(Blueprintable)来表示该C++类允许创建蓝图类这个时候可以按住ctrl点击我们当前MyActor继承的系统的Actor类,发现他里面已经写好了UCLASS(Blueprintable)这样的定义,这样我们通过继承系统的Actor类创建的C++MyActor可以直接创建

2020-12-11 16:49:33 699 1

原创 虚幻4蓝图实现简单开关门

什么是蓝图蓝图又称为可视化编程,通过模块与模块之间的连线操作在视觉效果上更简单明了的实现需求逻辑新建蓝图类需要实现的是开关门的操作,因此需要添加一个门的对象,所以先添加一个蓝图类取名位为door,选取父类为Actor(演员,在视口中能见到的具体对象都继承自Actor)。创造一个门的模型添加组件先添加一个静态网格组件在细节面板添加一个SM_Door的静态网格体(系统内置的门模型),这样一个门的模型就制作完成了添加碰撞检测接下来添加一个盒形碰撞检测,在门上的黄色边框就是盒形碰撞检测编

2020-11-14 19:57:42 446

原创 C# out关键字特性概论

在第一次知道out这个关键字的时候,我第一个想到了另一个语言的东西,C语言的指针,没错out关键字是取到指针的作用之一,解决参数传参的值传递和地址传递的问题。直接上程序 void test(int a) { // 值传递,把外部参数的a的值传入到函数当中改变,改变的是函数内部新分配内存的a并不会影响外部的a,所以这个函数执行完外面的a = 4 a = 10; } void testOut(out int a) { // out地址传递,传递的是外部变量

2020-10-15 11:21:41 196

原创 cocoscreater动画和动作基础入门篇

这是标题基础概念关于动画关于动作动画原理和帧循环使用引擎界面动画编辑器实现简单的动画代码中调用动画动作系统(action)tweenAction---------------------------------以上代码参考官方文档资料:动画动作Action缓动tween以上代码参考官方Api动画Animation动画剪辑AnimationClip动作action缓动tween基础概念关于动画动画作为数字媒体中最生动的视觉效果,在游戏中当然也必不可少,界面,交互操作的反馈,操作行为,这些看似死板的东西,

2020-09-08 18:17:19 563

原创 cocoscreater在ts脚本里使用全局对象

在ts脚本里使用全局对象在js脚本里使用全局对象在js脚本里使用全局对象因为js是弱类型的语言,所以在定义数据时,可以不用声明,直接在类里this.出来用就行了,所有在声明全局对象时window.命名就能直接使用了// 例子cc.Class({ extends: cc.Component, onLoad () { // 在函数内直接使用全局对象并把当前对象赋值给window.global这个全局类型 window.global = this;

2020-09-01 18:04:11 1829

原创 cocoscreater预制体prefab全攻略

预制体prefab怎么创建预制体预制体的作用1.批量创建相同类型的节点2.提前制作一些特定时机才需要展示出来的节点什么是预制体,字面意思,还未使用前预先制作好的节点资源,属性等同于普通节点,可以看做一个预先制作还没展示出来的普通的节点怎么创建预制体1.在层级管理器处先创建普通的节点,然后把这个节点拖拽到资源管理器的assets文件夹下,出于方便管理会统一建立一个Prefab文件夹下统一存放预制体双击预制体节点可以看到它呈现蓝色,这时候就可以删除还留在场景场景里的节点,需要使用该节点时,通过预制体创

2020-08-26 22:38:29 8212 1

原创 cocoscreate使用定时器schedule

这是标题普通对象使用定时器注册定时器注销定时器特殊对象使用定时器注册定时器注销定时器普通对象使用定时器注册定时器// 一般会在节点生命周期里的start函数里注册定时器 start () { // schedule函数注册定时器,第一个参数是回调函数,第二个参数是间隔时间,第三个参数是执行多少次,也可以不写,不写就是不停的执行 this.schedule(this.onTimeFuntion, 1, 6); // 这行代码表示每秒执行一次onTimeFunti

2020-07-31 18:26:15 511

原创 cocoscreate实现碰撞检测

实现碰撞检测步骤1.挂接碰撞组件2.进行碰撞分组3.实现回调函数1.挂接碰撞组件一共有三种碰撞组件分别是BoxCollider(方形碰撞组件)CirCleCollider(圆形碰撞组件)PolygonCollider(多边形碰撞组件)根据精灵的形状绑定对应的碰撞组件2.进行碰撞分组在需要进行碰撞的分组中打上勾,这样在游戏场景里被打上勾的分组就能进行碰撞3.实现回调函数// 在实现回调函数前可以先用代码编辑一下碰撞组件的name属性标识,方便在回调函数里判断start () {

2020-07-27 14:35:40 577

原创 Cocoscreate脚本实现发射和监听自定义事件(使用单例模式)

Cocoscreate脚本实现发射和监听自定义事件关于Cocoscreate自定义事件实现自定义事件的具体步骤1.自定义事件脚本2.注册和监听事件脚本3.发射事件脚本使用步骤3定义的 GameManger.ts发射事件关于Cocoscreate自定义事件因为Cocoscreate使用的是ts/js脚本,所以在自定义事件时,可以参考js/ts自定义事件的模式实现自定义事件的具体步骤1.自定义事件脚本// 创建一个用来定义事件的叫CustomEvent.ts脚本代码如下const {ccclass,

2020-07-26 02:15:19 363

原创 怎么更改cocos的默认调试浏览器

打开最左上角文件里的设置选项预览使用浏览器这栏使用的是默认浏览器点击浏览,选中自己想设置的浏览器然后,点右下角保存,OK。

2020-07-23 01:09:09 857

原创 cocoscreate节点脚本生命周期

cocoscreate节点脚本生命周期什么是节点脚本的生命周期onLoadstartupdatelateUpdateonDestroyonEnableonDisable总结什么是节点脚本的生命周期挂接到对应节点的脚本,从初始化到结束的过程,Cocos Creator 为组件脚本提供了生命周期的回调函数。用户只要定义特定的回调函数,cocoscreate就会在特定的时期自动执行相关脚本,用户不需要手工调用它们。目前提供给用户的生命周期回调函数主要有:onLoad组件脚本的初始化阶段,提供了 onLo

2020-07-16 17:12:43 188

原创 cocoscreate一周目学习:通过CocosDashboard初识cocoscreate

这是标题什么是CocosDashboard什么是cocoscreate功能概括场景编辑器层级管理器资源管理器资源列表创建资源属性检查器关于脚本什么是CocosDashboardCocosDashboard就是集成了cocoscreate和cocoscreate3D环境的下载器,它做为 Creator 和 Creator 3D 两个引擎统一的下载器和启动入口,方便升级和管理多个版本的 Creator。此外还集成了统一的项目管理及创建面板,方便同时使用不同版本的引擎开发项目。统一cocoscreate和c

2020-07-13 17:35:48 3513 2

原创 cocoscreate使用时背景坐标边界判定出现问题

今天踩了一个小坑,使用一个精灵在背景上进行坐标移动时,在锚点和精灵坐标都正确的情况下,通过背景大小减去精灵大小来限定精灵活动范围大小,发现不管怎么样坐标判定都会差一点,最后发现是调整了(Scale)缩放属性,调整Scale这个属性,并不会直接改变精灵的(Size)大小属性,所以导致通过背景大小减去精灵大小出的坐标出问题,所以边界坐标判定出了问题。...

2020-07-09 00:57:50 391

原创 cocos2dx点击和键盘事件

这是标题点击事件键盘事件关于事件:cocos2dx里面有很多种事件,比如点击事件,碰撞事件,键盘事件等等,但是处理它们的方式,大同小异1.先获得对应事件的监听器对象2.为对应的事件设置回调函数3.通过导演获得事件分发器,在和对应的控件绑定这样在对应的控件进行对应的操作的时候就会调用对应的回调函数点击事件 // 创建一个标签控件 auto label = Label::create("touch", "Arial", 30); // 把坐标设置到屏幕中心 label->setPosi

2020-06-13 18:44:46 1106

原创 cocos2dx创建菜单的基本方法

这是标题最简单的文字菜单最简单的图形菜单简单的精灵菜单触发器菜单最简单的文字菜单// MenuItemFont::create创建四个菜单项,第一个参数是菜单项名称,第二参数是点击该项触发的回调函数auto item1 = MenuItemFont::create("No.1", CC_CALLBACK_1(HelloWorld::gofind, this));auto item2 = MenuItemFont::create("No.2", CC_CALLBACK_1(HelloWorld::go

2020-06-10 00:41:57 280

原创 cocos2dx中创建精灵的全部方法

cocos2dx中创建精灵的三种方法1.用图片创建2.通过内存中纹理3.通过缓存1.用图片创建auto sprite = Sprite::create("bg.png"); //读文件。适用于图片使用频率低auto sprite = Sprite::create("bg.png", Rect(0,0,0,0)); //可以通过第二个参数传入相对坐标2.通过内存中纹理// 获得纹理,图像在内存的存储Texture2D *tt = Director::getInstance()->ge

2020-06-09 11:07:25 557

原创 如何在cocos2dx实现碰撞检测,物理世界Scene::createWithPhysics()

cocos2dx中的物理世界精灵和碰撞如何在引擎的物理世界中进行碰撞创建游戏中的物理世界为精灵设置刚体设置物理属性给刚体设置碰撞相关的掩码关于回调函数标题回调函数的内部实现精灵和碰撞在没有接触到游戏引擎自带的物理引擎之前,应该怎么检测两个屏幕上的精灵或者说图片是否接触和碰撞,通常会通过坐标,检测两个精灵的坐标是否相交,这样的方法放在游戏引擎里就很蠢。游戏引擎里提供了封装的物理引擎API,通过这些API能更好的模拟显示世界中的物理效果。如何在引擎的物理世界中进行碰撞一般分为4步1.创建物理场景2.

2020-06-08 23:26:52 1510

原创 cocos2dx和地图编辑器Tiled相关

cocos2dx和Tiled地图编辑器(Tiled)cocos2dx地图编辑器(Tiled)可以通过文件新建地图,然后快速添加图层和对象达到快速制作地图,图层相当于背景层,对象就是先占好一个位置,然后在代码里添加相应的对象新建的tmx文件保存到cocos2dx的Resources文件里可以通过代码访问cocos2dx // 使用实例 // 通过TMXTiledMap类就能访问到编辑的地图文件 TMXTiledMap *map; // 通过getObjectGroup(name)获得tmx

2020-05-27 22:52:45 263

原创 初识cocos2dx动作和动画

动作和动画关于动作关于动作动作类(Action)动作类(Action)是所有动作的基类,它创建的一个对象代表一个动作。动作作用于Node,因此每个动作都需要由Node对象执行。动作类(Action)作为基类,实际上是一个接口,动作类的大多数实现类都派生于有限时间动作类(FiniteTimeAction)。在实际开发中我们通常用到两类动作-即时动作和持续动作,它们均继承于有限时间动作类。即时动作类auto placeAction = Place::create(Point(10, 10));Pl

2020-05-27 22:01:51 368

转载 cocos2d-x为什么大量使用宏定义函数,而不选择使用模板?

先有cocos2d-python, 之后移植到iOS上面,成了cocos2d-iphone。cocos2d-iphone使用objc编写。随着iOS的流行,cocos2d-iphone在iOS的游戏开发中,变得流行。cocos2dx是在cocos2d-iphone流行之后,采用C++重新编写的,x表示cross, 就是cross platform(跨平台)的意思。在3.0之前,cocos2dx只是在在cocos2d-iphone后面跟随模仿,所有的接口,类名,设计跟cocos2d-iphone一模一样,

2020-05-26 21:58:22 129

原创 初识函数指针

函数指针指针函数指针函数指针作为参数指针在C语言中指针是一种非常强大的特性,在后来的C++中也保留了这其他语没有的独一无二的特性,指针可以通过指向一个变量,然后通过指针去访问这个变量的地址,做一系列的操作。函数指针函数指针同样属于一种指针,函数也像普通变量一样需要占内存,那么就代表可以通过指针访问它,访问函数的指针就是函数指针// 定义一个返回最大值的函数int Max(int a, int b) { return a > b ? a : b;}int main() { //

2020-05-26 18:04:25 139

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除