Если возможно, я хочу знать , как в то время как в C++ интерпретирует этот два разных кода.while() различные выходы; та же самая переменная
Разница между ними состоит в том, что первый из них загружается из предыдущего var, которому уже присвоено значение, а второй код - значение переменной при выполнении while.
Приведенный ниже код является частью очень простой «печать всех файлов в директории» программы сделано с
1. Значение дается при выполнении. Возвращает все файлы по умолчанию
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.
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++ интерпретирует их?
Во втором случае 'ent' всегда будет результатом' readdir (directory) ', если это не' NULL', это бесконечный цикл. – Maroun
@MarounMaroun Если у вас нет оператора overloaded ->, который действительно делает что-то действительно странное. – Cubic