Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α20.10 · Διάσχιση φακέλων

Διάλεξη 20, διαφάνεια 35 · Δυσκολία ★★☆ · trace · Κεφάλαια: 20

Τι θα τυπώσει το πρόγραμμα;

#include <stdio.h>

typedef struct folder {
  char name[128];
  struct folder *parent;
} Folder;

int main() {
  Folder root = {"/", NULL};
  Folder home = {"home/", &root};
  Folder user = {"thanos/", &home};
  Folder hw0 = {"hw0/", &user}, hw1 = {"hw1/", &user};
  Folder newton = {"newton/", &hw0};
  for (Folder *iterator = &newton; iterator; iterator = iterator->parent)
    printf("folder: %s\n", iterator->name);
  return 0;
}

Υπόδειξη

Ο βρόχος ξεκινά με δείκτη στον newton και σε κάθε βήμα μετακινείται στον γονέα. Ρωτήστε: πότε γίνεται ψευδής η συνθήκη iterator; Τυπώνεται ποτέ ο hw1;

Αριθμός στον οδηγό: Α20.10 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: slides-lec20-folder-iterate · Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec20-folder-iterate.html · Markdown (GitHub)