跃2.0 2018-08-23 09:51 采纳率: 40%
浏览 3112
已采纳

能不能通过修改指针的指向来修改指针所指向的变量的值

这里主要是指的是字符串指针
比如

 比如 char s1[]="hello"; s=s1; char *t="www",我想让s内容变成"hellowww" 可以通过直接使用指针指向来做么,不要string.h函数 不要循环赋值。就是想通过修改指针指向来做

这个可以实现么 不要函数不要循环复制 为什么不能让s+5=t,就是让它接下来指向t的地址呢

  • 写回答

6条回答 默认 最新

  • zhangbin-eos 2018-09-11 15:00
    关注

    如果s1和t这两个字符串在内存连续的话,那么s=s1,s+6==t是真,C的字符串需要额外的计算一个字符串结束符\0

    如果你的问题是是不是能够修改指针的值来修改指针指向的数据,这个是可以的,并且在C中也很常见,前提就是你得准确的知道你的源地址和目标地址的偏移,以及目标地址存储的数据类型,这样才能正确的提取出你要的数据

    比较经典的例子是linux kernel list.h中的宏

     #define container_of(ptr, type, member) ({ \
    
        const typeof(((type *)0)->member ) *__mptr = (ptr); \
    
        (type *)((char *)__mptr - ((size_t) &((type *)0)->member));})
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能