如果可能的话,我想知道C++中的while 是如何解释这两个不同的代码的。
它们两者之间的区别在于,第一个 while 是从已经给定值的前一个 var 加载的,而第二个代码是在执行 while 时给出变量的值。
下面的代码是一个非常简单的“打印目录中的所有文件”程序的一部分
第一个。执行 while 时给出值。按预期返回所有文件
ent = readdir(directory);
if(ent == NULL){
cout << "Cannot read directory!";
}else{
while((ent = readdir (directory)) != NULL){
cout << ent->d_name; //this one is the one which works fine; value is given when doing the while
}
}
2n。在执行 while 之前给变量赋值。返回具有第一个值的无限 bucle。
ent = readdir(directory);
if(ent == NULL){
cout << "Cannot read directory!";
}else{
while((ent) != NULL){
cout << ent->d_name; //this one returns an infinite bucle of only the first value of the while
}
}
C++ 如何解释它们?