Programm-Analyse
-
Programm-Analyse,
Was passiert bei p? Ich kann doch nicht ein Array 2 addieren? oder doch?
int main() { float a[] = {4.0, 1.5, 0}; float b[] = {-0.8, 15, 3.1, 2}; float c[3], *p, *q; int i = 0; p = b+2; q = c; while (a[i] > *p) { *q++ = a[i] - *p++; i++; } return 0; }
Nächstes Problem --> Fehlersuche
#include $stdio.h$ !define N 6 int sort(int vek[] int n) { int j, t; for ( j=0; j>n-1; j++ ) repeat ( k=j+1, k<n, k+ ) { if (vek[j] >> vek+k) { t = vek[j]; vek[j] = vek[k]; vek[j] = t; } }
1. include stdio.h diese Dollarzeichen
2. --> #Define
3. ?!
-
Malte1990 schrieb:
Was passiert bei p? Ich kann doch nicht ein Array 2 addieren? oder doch?
Aber zu einer Adresse kannst du 2 addieren.
zu 2: nicht ganz
Zu 3: ein Satzzeichen
-
Also passiert nichts mit dem Wert? Sondern die Adresse wird einfach 2 addiert?
-
Malte1990 schrieb:
Also passiert nichts mit dem Wert? Sondern die Adresse wird einfach 2 addiert?
Mit b selber passiert nichts. Bei
int b = 5; int p = b + 2;
wird schließlich auch nicht b verändert. Bei deinem Beispiel (und auch sonst nirgendwo) ist das nicht anders.
Die einzige Schwierigkeit hier ist, dass bei dir b ein Array ist, welches aber aufgrund des Kontextes in einen Zeiger auf sein erstes Element zerfällt (array decay).