[問題] for迴圈的問題

看板C_and_CPP作者 (姜姜)時間14年前 (2011/04/20 23:57), 編輯推噓0(0014)
留言14則, 8人參與, 最新討論串1/3 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C 問題(Question): 以下程式是把字元陣列a複製到b的function,EX:strcpy(a,b) 請問一下那個for迴圈的寫法,中間那一項 d[i]=s[i]是甚麼意思? 程式碼(Code): void strcpy(char s[], char d[]) { int i; for (i = 0; d[i] = s[i]; i++) ; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.161.96

04/21 00:05, , 1F
跟這個意思差不多 http://pastie.org/1815891
04/21 00:05, 1F

04/21 00:07, , 2F
james大,tmp沒有初始化喔
04/21 00:07, 2F

04/21 00:08, , 3F
要 == 吧?
04/21 00:08, 3F

04/21 00:10, , 4F
它是複製...
04/21 00:10, 4F

04/21 00:10, , 5F
我想說初始值不是重點,而且塞什麼都很奇怪...XD
04/21 00:10, 5F

04/21 00:11, , 6F
正確來說 當他有空字元結尾時才會跳出
04/21 00:11, 6F

04/21 00:12, , 7F
要分清楚字元陣列和字串的差別
04/21 00:12, 7F

04/21 01:42, , 8F
還有更極端的 while(*d++=*s++); 還好原PO不是用指標
04/21 01:42, 8F

04/21 07:56, , 9F
我想請問一下,那這樣for跳出的條件是s[i]讀到NULL嗎?
04/21 07:56, 9F

04/21 10:02, , 10F
l大的 -while(*d++ = *s++) 已經幾乎是慣用法了吧XD
04/21 10:02, 10F

04/21 22:59, , 11F
還有Duff's device XD
04/21 22:59, 11F

04/21 23:10, , 12F

04/22 08:25, , 13F
學弟,別再 Duff's device了( ‵□′)───C<─___-)|||
04/22 08:25, 13F

04/22 13:39, , 14F
看到樓樓上, 愈來愈無言...
04/22 13:39, 14F
文章代碼(AID): #1Dhm9LPO (C_and_CPP)
文章代碼(AID): #1Dhm9LPO (C_and_CPP)