hzbn.net
当前位置:首页>>关于C语言 while(*t++)为什么能跳出循环?的资料>>

C语言 while(*t++)为什么能跳出循环?

*t是一个char类型指针,有长度范围,到了一定程度就会数据溢出,然后*t就会小于0,然后不停的++,总有等于0的时候,也就是循环跳出的时候

while(t) 相当于 while( t!=0 ) t值为0时,条件为假 t值不为0时,条件为真 while( t )是while( t!=0 )的简便写法。

t--是自减运算,是每次t自身减1 while(t--)就是当t自身减到0就退出循环。

while(*t++); 相当于 while(*t++ != 0 ); 即当*t不为0时循环! 字符串结束符是\0, 按数值来说就是0

while(*s++=*t++) 这里实现了四个操作。 1 *s = *t, 即将s指向内存赋值为t指向内存的值; 2 执行s的自加操作; 3 执行t的自加操作; 4 判断执行自加前的*s值,如果*s为0,那么退出循环。 可以写成等价的for循环。 for(; *s; s++, t++) *s = *t;

等价于while(t=t+1,*(t-1));——我只是说while(t=t+1,*(t-1));和while(*t++);功能完全一样。而while(*t++);是先判断*t是不是0,然后再t=t+1,而且无论*t是否为真,t=t+1都要执行。

while()是判断真假,当括号里的语句为0时是假的,while下面两条程序不用执行,跳出这段程序;不为0时是真的,继续执行。 t--的意思是自减,原来的值经运行t--后减1,例如在运行之前t=3,运行后t=2。 多说一句,还有一种--t也是自减的,如果是这...

#include int main() { int i = 0,t = 1; while( t

先将s指的值赋给t,再看t是否不等于空,是则执行while下面的语句,否则跳出while循环! 示例如下,长度为5,所以只有前五次不等于空,所以只输出了五个OK:

#include int main(void ){ int m,n,i, b, t; char ch; printf("Input the max number:\n"); scanf("%d", &t); do { b = 1; n=rand()%t +1; for(i=1; ; i++) { printf("Input number between %d - %d: ", b, t); scanf("%d",&m); if(m==n) break...

网站首页 | 网站地图
All rights reserved Powered by www.hzbn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com