Ceae 2021-02-08 17:19 采纳率: 54.5%
浏览 54
已采纳

编译提示我无法修改char但我不知道哪错了

  • 写回答

4条回答 默认 最新

  • 惊雲浅谈天 2021-02-09 10:06
    关注

    首先,我不说你代码中的问题,仅从你的问题来看:

    “ 没有报错只有警告,然后什么也没有输出只是一片空白”

    你定义了一个数组a,又定义了一个字符指针b,同时没有给b指针初始化(一般会自动赋为空指针),那么,显然,b永不可能等于"\0".

    第二个for循环没有意义。

    这里我再帮你捋一下逻辑:第一个循环中,你把字符串中的每一个字符的地址赋给了从某一个位置(b指针的初始地址)开始的一小片没有空间的地址。

    第二个循环中,从另一个地址(b的末地址)开始判断,如果b指向的某个东西不等于"\0",则打印b指向的东西的同时b++。

    然而注意!尽管你以为将b的位置向后挪动了几个字符(这几个字符中还不包括\0,不知道你咋想的),b依然是空指针,就是说哪怕是输出b的地址,它都可能是类似乱码一样的东西。

    既没有空间,又没有指向,还有一个未知的地址,简直不要再混乱。

    其次,再说那个警告的问题。

    我猜你现在已经知道错哪了。

    指针就是指针,数组就是数组,想要存储字符串,就应该定义一个固定空间的数组,或者malloc出一块空间。

    指针只能指向该数组的首地址,但不能作为空间被定义,这里编译通过是因为编译器在猜,它猜你定义了某一片空间大小的数组,正好能够存储该字符串,而a则是数组名,因此它给予了警告而不是error。

    这里也是建议你重新学习一下指针和数组。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧