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

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

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

t--是自减运算,是每次t自身减1 while(t--)就是当t自身减到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都要执行。

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

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

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

他说的是printf("*")与‘0’等价 其实是这样的 printf这个函数的返回值是输出字符的个数 现在printf("*")的返回值是1 在while里只有0 和非0两种 所以只要选排一个非0的就能说是等价的 而‘0’需要转成ASCII码看是不为0的 所以选B

int aaa(char *s) { char *t=s; while (*t++); 判断*t的值: 1,如果不为0,则继续while循环,执行t++,指针指向下一个 2,如果为0,跳出while循环,执行t++,指针指向下一个 t--; return (t-s); } 比如数组char temp[] = {1, 2, 3, 4, 5, 6, 7,...

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

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