Re: [問題]問個c語言問題
了解
真是太感謝您囉
不過想再追問一下
(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
02/25 01:21, 1F
推
02/25 02:01, , 2F
02/25 02:01, 2F
→
02/25 02:01, , 3F
02/25 02:01, 3F
討論串 (同標題文章)