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循环内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复