作者Colac (漂泊吉他手)
看板Electronics
标题Re: [问题]问个c语言问题
时间Sat Feb 24 23:24:35 2007
※ 引述《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: 125.232.198.193