Αναφορά σε στοιχεία πίνακα: τι θα τυπώσει;
#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)