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

Α11.2 · Αναφορά σε στοιχεία πίνακα μέσω δείκτη

Διάλεξη 11, διαφάνειες 29–30 · Δυσκολία ★☆☆ · trace · Κεφάλαια: 11

Αναφορά σε στοιχεία πίνακα: τι θα τυπώσει;

#include <stdio.h>
int main() {
  int *ptr, arr[] = {10, 20, 30};
  ptr = &arr[0];
  printf("mem[%p], %d\n", ptr, *ptr);
  ptr += 2;
  printf("mem[%p], %d\n", ptr, *ptr);
  return 0;
}

Υπόδειξη

Τις ακριβείς διευθύνσεις δεν μπορείτε να τις ξέρετε, αλλά μπορείτε να πείτε πόσο διαφέρουν οι δύο. Κατά πόσα bytes μετακινεί το ptr += 2 έναν int *, και σε ποιο στοιχείο του πίνακα δείχνει μετά;

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