概述
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循环,条件中定义变量和循环体变量一致时出现问题分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复