可以这样在函数中的参数为char *p时,用p[n]这种形式修改p所指字符串的内容吗?

ShawFeld 2014-10-11 01:51:52
如果在外部 char *p="hello world"这样,我知道不能更改。
但是如果 char*p = str; str是一个数组字符串,这样行吗?
那在函数中想对参数char *p (指向字符串)进行修改,可以用p[n]吗?


我用printf试了一下,发现可以,但不知道这样做是否安全。或者有什么替代方法呢。



(背景:因为strncpy不能给des自动加'\0',所以我用strncpy中修改char *p中的内容,希望在最末尾的后一位加‘\0’)。

谢谢各位大神了。
...全文
305 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
li1397937810 2014-10-12
  • 打赏
  • 举报
回复
指针可以用下标的方法来访问
铖邑 2014-10-12
  • 打赏
  • 举报
回复
如果在外部 char *p="hello world"这样,我知道不能更改。 但是如果 char*p = str; str是一个数组字符串,这样行吗? 这里的"hello world"只是用来初始化p的,你可以修改p里面的东西,没有任何问题 同样的,str也是允许修改的。二者都没有涉及到修改常量串的问题啊???!!! (背景:因为strncpy不能给des自动加'\0',所以我用strncpy中修改char *p中的内容,希望在最末尾的后一位加‘\0’) strncpy可以给dest复制'\0'的,问题是你如果复制的字符串长度刚好等于参数指定的长度,它就不会复制'\0'
「已注销」 2014-10-11
  • 打赏
  • 举报
回复
就用下标来改,前提是允许修改才能改
赵4老师 2014-10-11
  • 打赏
  • 举报
回复
#pragma comment(linker,"/SECTION:.rdata,RW")
//加这句可以让常量区可写,后果自负!
【SCI一区论文复】基于SLSPC系列的高阶PT-WPT无线电能传输系统研究(Simulink仿真实现)内容概要:本文档聚焦于【SCI一区论文复现】基于SLSPC系列的高阶PT-WPT无线电能传输系统研究,通过Simulink仿真实现,深入探讨了无线电能传输(WPT)系统的高频、高效率能量传递机制。重点围绕SLSPC(串联-并联-串联-并联-电容)拓扑结构展开,分析其在高阶谐振条件下的性能优势,包括提高传输效率、增强系统稳定性及改善抗干扰能力。文详细介绍了系统的建模方法、关键参数设计、仿真模型搭建以及性能评估指标,并结合实际应用场景验证了该结构的有效性与先进性。此外,文档还列举了大量相关科研方向的技术支持内容,涵盖电力系统、智能优化算法、机器学习、信号处理等多个领域,体现了较强的综合性与实用性。; 适合人群:具备一定电力电子、自动控制及仿真基础的研究生、科研人员及工程技术人员,尤其适合从事无线电能传输、新能源系统、智能电网等相关领域的研究人员;; 使用场景及目标:①用于复现SCI一区高水平论文的SLSPC型PT-WPT系统,掌握高阶谐振拓扑的设计与仿真方法;②深入理解WPT系统的谐振特性、参数匹配与效率优化机制;③为开展无线电能传输方向的科研项目、论文写作或工程应用提供技术支持与参考范例; 阅读建议:建议读者结合提供的Simulink模型与代码进行实操演练,重点关注系统参数设置、谐振频率匹配与仿真结果分析过程,同可拓展学习文档提及的优化算法、控制策略等交叉技术,以提升综合科研能力。

70,039

社区成员

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

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