有关使用指针做交换函数的问题

richard_ma 2007-01-22 06:45:58
我写了一个函数用来交换x, y的值,传入的是指针
如下
void swap (char *x, char *y) {

char *temp = NULL;
*temp = *x;
*y = *x;
*x = *temp;

}

运行就出错

但是改为
void swap (char *x, char *y) {

char *temp = x;
*y = *x;
*x = *temp;

}
就可以正常运行了,结果也对

不知道是为什么,是不是指针在编译时这两种写法会造成不同的结果呢?

PS:VC6.0环境
...全文
170 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
richard_ma 2007-01-22
  • 打赏
  • 举报
回复
一针见血啊,谢谢了
blackmurder 2007-01-22
  • 打赏
  • 举报
回复
你让temp指向空,*temp就没有意义了!
看来楼主对指针的理解还需要加强啊
内容概要:本研究聚焦于内置式永磁同步电机(IPMSM)在全速域范围内的最优电流轨迹规划与控制策略优化,提出了一种计及电压与电流双重约束的MTPA(最大转矩电流比)与弱磁控制融合方法。通过Simulink搭建仿真模型,系统分析了电机在不同转速区间下的运行特性,建立了精确的电机数学模型,并综合考虑了电压极限椭圆与电流极限圆的约束条件,实现了全速域内电流矢量的最优分配。研究设计了基于电压饱和判据的分区切换逻辑,确保MTPA控制与弱磁控制间的平滑过渡,解决了传统控制模式在高速区易出现的失稳与效率下降问题,最终在仿真平台上验证了所提控制策略在提升电机效率、扩大调速范围和增强动态响应方面的优越性; 适合人群:具备电机控制或电力电子领域基础知识的研究生、科研人员及电气工程相关专业的高年级本科生; 使用场景及目标:①研究IPMSM在全速域范围内的高效运行控制;②设计并仿真验证MTPA与弱磁控制的融合策略;③分析电压与电流双重约束对电机性能的影响; 阅读建议:此资源以Simulink仿真实现为核心,建议读者在学习过程中结合电机学、电力电子及自动控制理论,深入理解控制算法的设计逻辑,并动手复现仿真模型,通过调整参数观察系统响应,以加深对理论知识与工程实践结合的理解。

70,040

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧