Linux C Programmierung Tutorial Teil 7: Arrays

So haben wir bereits das Konzept der Variablen in der C-Programmierung diskutiert (hier und hier). Um schnell zu aktualisieren, ist eine Variable etwas, das einen Wert eines bestimmten Typs enthalten kann – es kann eine ganze Zahl, ein Zeichen oder sogar ein Fließkomma sein. Es gibt jedoch eine Einschränkung der Variablen: Sie können immer nur einen einzigen Wert enthalten.

Arrays in C

Das bedeutet, wenn Sie mehrere Werte halten wollen, müssen Sie mit der gleichen Anzahl von Variablen umgehen. Wenn Sie zum Beispiel möchten, dass ein Programm 10 Ganzzahlenwerte vom Benutzer akzeptiert und dann ausgibt, dann schreiben Sie es entweder auf diese Weise:

#include <stdio.h>
int main()
{
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;
printf("Enter 10 integer values\n");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
scanf("%d",&d);
scanf("%d",&e);
scanf("%d",&f);
scanf("%d",&g);
scanf("%d",&h);
scanf("%d",&i);
scanf("%d",&j);

printf("You entered the following values:\n");
printf("%d\n",a);
printf("%d\n",b);
printf("%d\n",c);
printf("%d\n",d);
printf("%d\n",e);
printf("%d\n",f);
printf("%d\n",g);
printf("%d\n",h);
printf("%d\n",i);
printf("%d\n",j);

return 0;
}

Oder auf die folgende Weise:

#include <stdio.h>
int main()
{
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;

printf("Enter 10 integer values\n");
scanf("%d %d %d %d %d %d %d %d %d %d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j);

printf("You entered the following values:\n");
printf("%d %d %d %d %d %d %d %d %d %d\n",a,b,c,d,e,f,g,h,i,j);

return 0;
}

Der zweite Ansatz kann etwas besser sein, wenn Sie in Bezug auf die geschriebenen Codezeilen vergleichen, aber es gibt immer noch einen besseren Weg, und das ist die Verwendung eines ganzzahligen Arrays.

Ja, wenn es eine Anforderung gibt, mehrere Werte desselben Typs zu halten, dann sollten Sie sich für ein Array entscheiden. So wird ein ganzzahliges Array definiert, das 10 Werte aufnehmen kann:

int arr[10]

Hier bezieht sich ‚int‘ also auf die Art der Werte, die Array ‚arr‘ speichern wird. Die Zahl 10 in eckigen Klammern zeigt an, dass die Kapazität von „arr“ 10 Werte beträgt. Nun, hier ist ein Stück Code, das dieses Array verwendet:

#include <stdio.h>
int main()
{
int arr[10],i;

printf("Enter 10 integer values\n");

for(i=0;i<10;i++)
scanf("%d",&(arr[i]));

printf("You entered the following values:\n");

for(i=0;i<10;i++)
printf("%d\n",arr[i]);

return 0;
}

Beachten Sie, dass wir die Funktionen scanf und printf bereits in einem unserer früheren Tutorials besprochen haben, so dass Sie auf diese Artikel zurückgreifen können, wenn Sie mehr über sie erfahren möchten.

Um auf Arrays zurückzukommen, hätten Sie beobachtet, dass die ‚for‘-Schleife im obigen Code mit i=0 beginnt, da Array-Indizes (die Zahl in eckigen Klammern) immer bei Null beginnen. In unserem Fall bezieht sich arr[0] also auf den ersten vom Benutzer eingegebenen Wert, arr[1] auf den zweiten Wert und so weiter, bis arr[9] sich auf den 10. Wert bezieht.

Es ist auch erwähnenswert, dass Sie leicht auf die Speicheradresse jedes im Array gespeicherten Wertes zugreifen können. Dies kann über den Array-Namen erfolgen, der in diesem Fall’arr‘ ist. Wenn Sie also nur’arr‘ im Code verwenden, dann ist es nichts anderes als die Speicheradresse des ersten Elements.

Wenn Sie auf die Speicheradresse des zweiten Elements zugreifen möchten, verwenden Sie einfach ‚arr+1‘. Für das dritte Element verwenden Sie’arr+2′, und so weiter und so fort. Das folgende Stück Code und seine Ausgabe sollen Ihnen einen besseren Eindruck vermitteln.

#include <stdio.h>
int main()
{
int arr[10],i;

printf("The address of first and second values are: %u %u\n", arr, arr+1);

return 0;
}

Und hier ist die Ausgabe:

The address of first and second values are: 2904035888 2904035892

Wie Sie sehen können, gibt es einen Unterschied von 4 Bytes in diesen Adressen – das liegt daran, dass ein ganzzahliger Wert 4 Bytes auf meinem System belegt.

Fazit

Hier, in diesem Tutorial, haben wir die Grundlagen von Arrays diskutiert. Beachten Sie, dass wir nur ein Beispiel für ein Integer-Array angegeben haben. Du kannst auch eine Reihe anderer Typen haben, wie z.B. Zeichen. Probieren Sie die Beispiele aus, die wir in diesem Tutorial verwendet haben, und lassen Sie uns im Kommentarfeld unten wissen, wenn Sie Zweifel oder Fragen haben.

Das könnte Dich auch interessieren …