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

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

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

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

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

给你解释一下:(*s)&&(*t)&&(*t++==*s++) &&:逻辑与,由左到右结合,只要有一项为0,则为0 。(*s)&&(*t)表示有一字符串到结尾,则跳出循环。(*t++==*s++):先执行 *t == *s ,判断两个字符是否相等,接着执行 t++ 与 s++,向后进行偏移。++的优先...

详解如下: 1、while用于循环。 2、当while后面的括号里面的条件为真的时候,继续循环执行。 3、当while后面的括号里面的条件为假的时候则终止循环。 4、while(flag==0)就是当flag的值等于0的时候,循环继续,如果flag的值不等于0,则不会循环。

#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...

t是一个 指针变量, *t 是对指针取值的意思 while (*t!=0) 就表示 只要 t所指向的 值 *t 不为0 就执行 while 子循环语句 直到 *t==0为止 所以 *t的值肯定 是在变 而且 最终 值会 变到0 (如果不是这样 那么 就是死循环了 无意义了 ) 就这么个...

前者先把t减1再判断--t是真是假;后者先判断t的真假再减1。哥们儿,找一本C语言的书看看就知道了

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