我是靠谱客的博主 眯眯眼外套,这篇文章主要介绍while循环,条件中定义变量和循环体变量一致时出现问题分析,现在分享给大家,希望可以做个参考。

while循环,条件中定义变量和循环体变量一致时出现问题分析

问题:做底层文件copy实验时,为得到read write的返回值在,循环条件中直接定义了
while(int readnum=read(in,&c,1)),
部分代码如下:

>  in=open("file.in",O_RDONLY,0666);
>      out=open("file.out",O_WRONLY|O_CREAT,0666);
>      //read
>      while(int readnum=read(in,&c,1))
>      {printf("readnum=%dn",readnum);
>      //write
>      int writenum=write(out,&c,1);
>      printf("writenum=%dn",writenum);}    

编译出错,后查阅资料分析:

《C++Primer》(中文第四版) P178: “在循环条件中定义的变量在每次循环里都要经历创建和撤销的过程。”

结论:循环条件中的定义的变量,在循环体中不能直接引用的,通过在while循环外定义来解决,提前定义好变量。

int readnum;
int writenum;
while(readnum=read(in,&c,1))
 {printf("readnum=%dn",readnum);
 //write
 writenum=write(out,&c,1);
 printf("writenum=%dn",writenum);}

最后

以上就是眯眯眼外套最近收集整理的关于while循环,条件中定义变量和循环体变量一致时出现问题分析的全部内容,更多相关while循环内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(197)

评论列表共有 0 条评论

立即
投稿
返回
顶部