C语言——指针

(一)地址与指针的概念:

1.如果在程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配内存单元。编译系统根据程序定义的变量类型,分配一定长度的空间。例:整型变量2个字节,字符变量一个字节。

2.内存区的每一个字节有一个编号,这就是“地址”。相当于索引号,房间号,房间里面可以存放数据。

3.区分内存单元的地址与内存单元的内容

4.在程序中一般是通过变量名来对内存单元进行存取操作的。其实程序经过编译以后已经将变量名转换为变量地址,对变量值的存取都是通过地址进行的。

5.按变量地址存取变量值的方式称为“直接访问”;将变量i的地址存放到另一个变量中,为“间接访问”。

6.C语言中,将地址形象化地称为“指针”。

7.一个变量的地址称为该变量的“指针”,如果有一个变量专门用来存放另一个变量的指针,则称为“指针变量”。区分指针和指针变量,指针是地址,指针变量是存放地址的变量。

(二)变量的指针和指向变量的指针变量

1.变量的指针,即变量的地址;指针变量,即地址变量

2.因为程序中,使用变量名的时候,实质是操作变量名指向的内容。定义指针变量:int *pointer_1 和int i是同一个意思,需要定义指针变量指向的变量的类型。

3.定义指针;基类型 *指针变量名 ,即指针变量名为地址,存的是头地址,基类型表示占用的字节数,*表示“指向”,“*地址”表示指向该地址的变量。

4.要指针变量指向一个变量,可以赋值语句:pointer_1 = &i; ,取变量的地址存入pointer_1.

5.定义指针变量注意两点:

   (1)指针变量前面的“*”表示该变量的类型为指针型变量。指针变量名为pointer_1 ,而不是*pointer_1.

   (2)在定义指针变量时必须指定基类型。因为每个字节都有一个地址,而指针变量存的是头地址,还要指定占用的字节数。

   (3)只有整型变量的地址才能放到指向整型变量的指针变量中。即类型要保持一致,声明指针变量的时候,要指定该指针用来存放的是何种基类型的地址。

(三)指针变量的引用

1.有两个运算符:

    (1)&:取地址运算符。

    (2)*:指针运算符,(或称间接运算符),取其指向的内容。

例如&a为变量a的地址,*p为指针变量p所指向的存储单元的内容。

内容概要:本文档详细介绍了基于MATLAB实现多目标差分进化(MODE)算法进行无人机三维路径规划的项目实例。项目旨在提升无人机在复杂三维环境中路径规划的精度、实时性、多目标协调处理能力、障碍物避让能力和路径平滑性。通过引入多目标差分进化算法,项目解决了传统路径规划算法在动态环境和多目标优化中的不足,实现了路径长度、飞行安全距离、能耗等多个目标的协调优化。文档涵盖了环境建模、路径编码、多目标优化策略、障碍物检测与避让、路径平滑处理等关键技术模块,并提供了部分MATLAB代码示例。 适合人群:具备一定编程基础,对无人机路径规划和多目标优化算法感兴趣的科研人员、工程师和研究生。 使用场景及目标:①适用于无人机在军事侦察、环境监测、灾害救援、物流运输、城市管理等领域的三维路径规划;②通过多目标差分进化算法,优化路径长度、飞行安全距离、能耗等多目标,提升无人机任务执行效率和安全性;③解决动态环境变化、实时路径调整和复杂障碍物避让等问题。 其他说明:项目采用模块化设计,便于集成不同的优化目标和动态环境因素,支持后续算法升级与功能扩展。通过系统实现和仿真实验验证,项目不仅提升了理论研究的实用价值,还为无人机智能自主飞行提供了技术基础。文档提供了详细的代码示例,有助于读者深入理解和实践该项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值