回复 21楼 叶纤
总结一下这段时间的互怼
1. cout << ends;
你认为 类型匹配 编译通过 运行输出正常 所以是正确的
我纠正 输出'\0'这个做法属于自找麻烦 ends不是给cout使用的参数
并科普 不是能编译运行输出就叫做正确 得考虑是否复合预期
cout << ends 无法确保符合预期 所以是错的
后面根据版主 rjsp 的考证
确定 ends 这个参数是给一个已经废弃的类型 std::ostrstream 设计的
用来写入字符串结尾0 不是用于输出'\0'
和我说法基本一致
2. 避免使用无符号类型/无符号数字
虽然你贴了非常多的资料打了非常多的字
但是 从这些资料得出的结论反而没有支持你的说法
比如 无符号溢出是可以依靠的确定行为 而有符号溢出反而存在危险
比如 常见的有符号溢出的行为和无符号溢出的行为是一脉相承 两者皆有相同问题 谈不上避免无符号
无符号类型的使用的确存在需要特别谨慎很容易出现错误的地方 但是你的回复都没能提到
无符号类型的使用需要特别注意的其实是
混用有符号无符号的时候 会有类型提升 结果为无符号
这是一个比较容易出错的地方
结果这个重点你没注意到 反而在无符号的优点上面死磕
然后 无符号类型存在容易出错的地方 但应该做的也不是避免使用无符号类型的
而是了解 熟悉 掌握 从心所欲不逾矩
3. 字符串逆序
题目要求 有2个
1 原地翻转 (原文 "你必须
原地修改输入数组")
2 空间复杂度为O(1)(原文 "使用
O(1) 的额外空间解决这一问题")
你的实现
输入数组没有变化
空间复杂度是 O(n)
2个要求全部都没完成
后面的交流中看出你和发帖人都误会了题目的要求
题目根本没要求递归
我在后面的回复中也解释了为什么不应该使用递归
4. 今天的左值讨论
我说左值是表达式 你回复这个理解有错误
并在10楼的回复中进行详细补充
说出来你可能没注意 整个10楼的回复中
唯一一次提到左值是你在引用我说的话
这就有点尴尬了 你好像没弄清楚反驳我什么内容
看后面的讨论你似乎是想让我介绍一下表达式?
其实在二楼 rjsp的回复中就有比较详细的解答了
C语言值类别:https://zh.
C++语言值类别:https://zh.
总结完成 基本符合我说的 你在论坛比较活跃 但回复内容有时候会出现一些偏差