1.指针和引用的区别

           在学习这本书的过程中自己并不是对知识点理解得很透彻,毕竟我没有参加过一些项目,只是自己随便写写代码。可能没有太多的醍醐灌顶的时候,写下这篇文章是希望能给自己总结的同时能帮助一些对C++感兴趣的朋友,对于文章中不正确的地方希望大家能够多多指正。

       1.引用必须要初始化

       一般来说在创建指针的时候是可以不用赋值的,没有赋值的指针在编译的是可以通过的,只不过会产生一个警告提示你没有赋值。然后引用是必须在创建的时候需要赋值的,否则会被报错。

       然后下面的代码很好玩:

              char* s = 0;

              char& r = *s;

       这样投机取巧的办法是可以通过编译的,但同时会造成很严重的后果(至于会有什么后果我就不知道了,怕电脑爆炸。。)

       虽然引用必须初始化很麻烦,但同时也带来了一些优点,比如很多时候不需要像测试指针那样测试这个引用是否为空

       void Test(const int *s)

       {

              if(s)      //还要测试指针是否合法,很麻烦。

              {

                     xxxx ; 

              }

       }


    2.引用永远只能指向一个对象

         

         char *pc = 0;

         char *pa = 0;

         char &test = *pc;

         test = *pa;  

         这样是能编译通过的,但实际上test的值没有发生改变的,依旧是pc的引用。


    3.重载运算符最好用引用

        重载运算符这个知识点在书上看到的基本都是用引用作为返回变量。当然用指针也是可以的,只不过会比较麻烦

        比如我们要重载的是 [ ],如果我们采用指针作为返回值,就会变为这样:

        Student s[5];       //Student是一个类

        *s[5].iValue = 10;   //把10赋予s[5]中的iValue

         可以看出这样跟我们平时学习的数组很不一样,有个 * 无疑干扰了看代码的人。

         如果我们返回是采用引用作为返回值,就会变成这样:

         s[5].iValue = 10;

         这样就清晰了很多。


         好,书上的知识大概就总结了这么多,希望能给初学者一些帮助。

内容概要:本文围绕可变桨叶四旋翼无人机的规范控制点对点运动模拟展开,重点研究优化推力分配策略在翻转动作中的应用性能比较。通过Matlab代码实现,构建了四旋翼动力学模型,并设计了多种控制算法以实现精确的姿态调整轨迹跟踪。研究对比了不同推力分配方案在执行高机动性翻转动作时的稳定性、能耗效率响应速度,旨在提升无人机在复杂飞行任务中的动态性能控制精度。该仿真研究为无人机飞控系统的设计优化提供了理论依据和技术支持。; 适合人群:具备一定自动控制理论基础和Matlab编程能力,从事无人机控制、飞行器动力学或机器人系统研究的科研人员及研究生。; 使用场景及目标:① 实现四旋翼无人机在三维空间中的精确点对点运动控制;② 对比分析不同推力分配策略在执行翻转等高难度动作时的控制效果能耗表现,优化飞行性能;③ 为无人机自主飞行、特技飞行及复杂环境下的机动控制提供算法验证平台。; 阅读建议:此资源以Matlab仿真为核心,建议读者结合相关控制理论知识,深入理解代码实现细节,重点关注动力学建模、控制律设计推力分配模块。在学习过程中,应动手调试参数,复现文中翻转动作的仿真结果,并尝试拓展至其他复杂飞行任务,以加深对无人机控制机理的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值