作者:
ychch (GG)
2016-07-26 00:02:00宣告的字串常数所在的内存位址是不能被修改的~
作者:
Richun (解放左手的OO之力)
2016-07-26 00:08:00reverse的函式宣告有问题,不能用char*,会出事。这个程式反转了一个"阵列",但是直接reverse("ABCDEFG");你测试完就知道会发生什么事
strlen() 每呼叫一次就会计算一次阵列长度好好一个O(N)可以解决的问题被他写成O(N^2),效能悲剧
作者:
wtchen (没有存在感的人)
2016-07-26 00:38:00char s[] 不算字串常数吧?
作者:
Caesar08 (Caesar)
2016-07-26 01:00:00他指的是,如果用reverse("ABCDEFG")的话如果用char s[]就没事
作者: shec1213 (旭爷) 2016-07-26 01:17:00
strlen()只有被call一次阿...
考这么不直觉欧? 我认为是对的说在code中也没用到字串常数我们还要脑补他会用字串常数去想欧?
应该不会是要考 int v.s size_t 吧( ゚д゚)
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2016-07-26 10:07:00但他给的 input 也不可能会爆, 要说错也很牵强如果只给 reverse 那倒是可以说出一些问题不然真要说的话 system("pause") 也算是错的喔还有在某些标准下 int main() 也不对
作者:
Caesar08 (Caesar)
2016-07-26 13:24:00有解答吗?
觉得有问题都能写吧 不一定有标准答案为啥一题只能有一种答案写Ali 要考量一下edge cases 算蛮正常的吧
作者:
EdisonX (卡卡兽)
2016-07-28 18:21:00乱入一下,原本函式里面用 size_t 反而问题比较大考虑到空字串的话就 gg 了
作者:
PkmX (阿猫)
2016-07-29 11:28:00reverse("ABCDEFG"); 是 caller 自己写烂啊 把const拿掉了可以改用ssize_t或ptrdiff_t 不过前者只有在posix里面还是改用for (char* i=p, j=p+strlen(p)-1; 这样比较安全XD
作者:
remmurds (Stronghold)
2016-07-30 09:20:00不要再用 dev c++ 了...拜托