2 Übungen | |
→ | 2.4 Übung 3 |
Theorie |
Aufgabe: Zugriff auf Feldelemente über Zeiger |
Machen Sie sich mit dem Thema "Zeiger" vertraut, siehe Abschnitt Felder, Adressen und Zeiger.
/** @file ex055.c Demo-Programm fuer Zugriff auf Feld-Elemente ueber Zeiger.
*/
/* Copyright (C) 2014-2017 - HS Schmalkalden. All rights reserved. */
#include <stdio.h>
/** Anzahl der Elemente in den Feldern.
*/
#define ANZAHL 10
/** Erstes konstantes Datenfeld (Elemente koennen nicht
geaendert werden), initialisiert mit Werten.
*/
static const int feld_1[ANZAHL] = {
1, 53, 865, 7, 9, 111, 13, -15, 17, 819
};
/** Zweites konstantes Datenfeld, initialisiert mit Werten.
*/
static const int feld_2[ANZAHL] = {
200, 954, 6, 888, 1210, 12, 114, 16, -8818, 2000
};
int
main(void)
{
const int *p1; /* Zeiger in feld_1 */
const int *p2; /* Zeiger in feld_2 */
int *ps; /* Zeiger in Summen-feld */
int *pd; /* Zeiger in Differenzen-Feld */
int i; /* Aktueller Index. */
int summe[ANZAHL]; /* Feld fuer Summen */
int diff[ANZAHL]; /* Feld fuer Differenzen */
/* Zeiger auf jeweiligen Feld-Anfang setzen */
p1 = ???;
p2 = ???;
ps = ???;
pd = ???;
/* Daten in den Feldern feld_1 und feld_2 anzeigen */
printf("Inhalt von feld_1:\n");
for(???) {
???
}
printf("Inhalt von feld_2:\n");
for(???) {
???
}
/* Daten in den Feldern summe und diff anzeigen */
printf("Inhalt von Feld summe (vor Berechnung):\n");
for(???) {
???
}
printf("Inhalt von Feld diff (vor Berechnung):\n");
for(???) {
???
}
/* Zeiger wieder auf jeweiligen Feld-Anfang setzen. */
p1 = ???;
p2 = ???;
ps = ???;
pd = ???;
/* Berechnung der Summen und Differenzen */
for(???) {
summe???
diff???
}
/* Zeiger wieder auf jeweiligen Feld-Anfang setzen. */
ps = ???;
pd = ???;
/* Daten in den Feldern summe und diff anzeigen */
printf("Inhalt von Feld summe:\n");
for(???) {
???
}
printf("Inhalt von Feld diff:\n");
for(???) {
???
}
return 0;
}
/* vim: set ai sw=4 ts=4 expandtab : */
Nehmen Sie die erforderlichen Korrekturen an ex055.c vor,
erstellen und testen Sie das Programm ex055.
Der Zugriff auf die Feldelemente soll über Zeiger erfolgen. Für den
Zugriff auf das nächste Feldelement werden die Zeiger
inkrementiert.