Heim >Backend-Entwicklung >C++ >Wie berechnet man die Summe der Array-Elemente in C mithilfe von Zeigern?
Ein Zeiger ist eine Variable, die die Adresse anderer Variablen speichert.
Betrachten Sie die folgende Anweisung:
int qty = 179;
Die Syntax zum Deklarieren eines Zeigers lautet wie folgt:
int *p;
Hier ist „p“ eine Zeigervariable, die die Adresse einer anderen Variablen enthält.
Der Adressoperator (&) wird zum Initialisieren von Zeigervariablen verwendet.
Zum Beispiel
int qty = 175; int *p; p= &qty;
Es handelt sich um eine Sammlung von Adressen (oder) eine Sammlung von Zeigern.
Das Folgende ist die Deklaration eines Arrays von Zeigern -
datatype *pointername [size];
Zum Beispiel
int *p[5];
Es stellt ein Array von Zeigern dar, das fünf ganzzahlige Elementadressen enthalten kann.
'&' wird verwendet für Initialisierung
Zum Beispiel wird
int a[3] = {10,20,30}; int *p[3], i; for (i=0; i<3; i++) (or) for (i=0; i<3,i++) p[i] = &a[i]; p[i] = a+i;
Indirektionsoperator (*) für den Zugriff verwendet.
Zum Beispiel
for (i=0, i<3; i++) printf ("%d", *p[i]);
Das Folgende ist ein C-Programm, das Zeiger verwendet, um die Summe von Array-Elementen zu berechnen:
Live-Demonstration
//sum of array elements using pointers #include <stdio.h> #include <malloc.h> void main(){ int i, n, sum = 0; int *ptr; printf("Enter size of array : </p><p>"); scanf("%d", &n); ptr = (int *) malloc(n * sizeof(int)); printf("Enter elements in the List </p><p>"); for (i = 0; i < n; i++){ scanf("%d", ptr + i); } //calculate sum of elements for (i = 0; i < n; i++){ sum = sum + *(ptr + i); } printf("Sum of all elements in an array is = %d</p><p>", sum); return 0; }
Wann Bei der Ausführung des oben genannten Verfahrens werden die folgenden Ergebnisse erzeugt:
Enter size of array: 5 Enter elements in the List 12 13 14 15 16 Sum of all elements in an array is = 70
Das obige ist der detaillierte Inhalt vonWie berechnet man die Summe der Array-Elemente in C mithilfe von Zeigern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!