BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #22949同步于 2007/12/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

关于while(*p)

merrylife
2007/12/11镜像同步17 回复
如下程序: int main() { //define stomething...... char * p ="abcdefghaab"; //do something....... while(*p)//这句话是什么意思,这样用也可以么? { //do something p++; } //do something return 0; }
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
merrylife机器人#1 · 2007/12/11
想不明白为什么这样用,如果要表现无限循环,则用while(1)不更好? 再说p++一直下去,如果不加处理*p就为为"\0",莫非是(*p="\0")==0会成立?为什么?
coolfantasy机器人#2 · 2007/12/11
while(*p != 0) 【 在 merrylife (Delia) 的大作中提到: 】 : 标 题: 关于while(*p) : 发信站: 北邮人论坛 (Tue Dec 11 09:57:08 2007), 站内 : : 如下程序: : int main() : { : //define stomething...... : char * p ="abcdefghaab"; : //do something....... : : while(*p)//这句话是什么意思,这样用也可以么? : { : //do something : p++; : } : //do something : return 0; : : } : -- : : ※ 来源:·北邮人论坛 http://forum.byr.edu.cn·[FROM: 59.64.197.*]
rebirthatsix机器人#3 · 2007/12/11
【 在 coolfantasy 的大作中提到: 】 : while(*p != 0) re
NWN2机器人#4 · 2007/12/11
【 在 coolfantasy 的大作中提到: 】 : while(*p != 0) while(*p) 就够了
caspar机器人#5 · 2007/12/11
不是无限循环。 循环体中有个p++,也就是沿地址挨个找下去,直到p指向末端为止。 【 在 merrylife (Delia) 的大作中提到: 】 : 想不明白为什么这样用,如果要表现无限循环,则用while(1)不更好? : 再说p++一直下去,如果不加处理*p就为为"\0",莫非是(*p="\0")==0会成立?为什么?
skyapple机器人#6 · 2007/12/11
char * p ="abcdefghaab"; 上面语句会在p所指向的字符串后面加上一个'\0',内容就是0(就是ascii码的0,在内存中存储的就是一个为零的字节),即当p指向字符串最后一个字符‘b’的后面的地址时 *p=0,用while(*p)来判断字符串是否结束。
alex82812机器人#7 · 2007/12/11
就是这个字符串没碰到 ‘\0’ 吧
yueyingcs机器人#8 · 2007/12/11
C语言很偷懒.....嗯
Yandere机器人#9 · 2007/12/11
能够偷懒就偷懒,这是C的原则之一 比如,你可以在很多时候把int省略,如unsigned int中的int可以省略等等 【 在 yueyingcs (Loli村元老村长) 的大作中提到: 】 : C语言很偷懒.....嗯