Re: [問題]問個c語言問題

看板Electronics作者 (哆啦A孟)時間19年前 (2007/02/25 01:13), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串4/7 (看更多)
了解 真是太感謝您囉 不過想再追問一下 (1)為捨'\0'是表示false阿 (2)還有就是通常在陣列裡頭結尾(不管是指哪種陣列)不都是會加上'\0'嗎? 還是說是我記錯了@@' ※ 引述《Colac (漂泊吉他手)》之銘言: : ※ 引述《adddream (哆啦A孟)》之銘言: : : 假設傳遞一個字串給函數strpcy : : strpcy(s,t) : : char *s, *t; : : { : : while(*s++ = *t++); : : } : : 請問 : : (1)為什麼當t指向'\0'時 while會停止迴圈 : 字串是以'\0'字元當結尾, : 所以assign t字串的每個字元給s字串, 直到碰到'\0'字元, : 也就是 while( '\0' ), 就跳出迴圈了. : : (2)為什麼當*s 和 *t 宣告為 int 時 , while迴圈無停止機制 : 整數陣列沒有以'\0'當結尾的機制, : 另外, while迴圈並不是不會停止, 只是沒遇到被assign成整數0的情況, : 或是代表false的整數的情況, *t++一直run下去抓到的值是隨機的, : 但通常會程式錯誤關閉才對, 因為access到未事先宣告的記憶體區塊. : : 以上 : : 謝謝各位大大了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.70.98.51

02/25 01:21, , 1F
'\0' == 0
02/25 01:21, 1F

02/25 02:01, , 2F
第二個問題 那是因為一般的char* 不用指定長度 所以結尾才要
02/25 02:01, 2F

02/25 02:01, , 3F
用\0標誌當作結尾 有指定字數的陣列是不用的 i.e.整數陣列
02/25 02:01, 3F
文章代碼(AID): #15u798bL (Electronics)
討論串 (同標題文章)
文章代碼(AID): #15u798bL (Electronics)