Hallo!
Ich studier zur Zeit und hab dabei auch das Fach Programmieren in C. Da ich morgen Klausur schreib geh ich gerade ne Altklausur durch und versteh gerade die Welt nicht.
Hier der Code / die Aufgabe:
Erste Ausgabe ist c = 10, das ist klar. So dann gehts aber durch die If zu c = int ( also kein konkreter Wert)... Wenn dann die func(c) mit diesem Wert als Parameter ausgeführt wird: greift das Programm dann auf das externe c zu?
Das Problem ist auch noch, dass wenn ich das ganze durch den Compiler jage folgendes rauskommt:
und bei nem Kollegen
Hoffe mir kann jmd weiterhelfen.. Wär dringend ( Bis morgen 12 Uhr )
Ich studier zur Zeit und hab dabei auch das Fach Programmieren in C. Da ich morgen Klausur schreib geh ich gerade ne Altklausur durch und versteh gerade die Welt nicht.
Hier der Code / die Aufgabe:
Code:
Welche Aussage erzeugt das Programm:
#include <stdio.h>
int c = 10;
int func ( int x) {
c = c+x;
printf ("c=%d\n" ,c );
return c+x;
}
main(){
int c = 10;
printf ("c=%d\n" ,c );
if (c>0){
int c;
c = func(c);
printf ("c=%d\n" ,c );
} else
c += 10;
printf ("c=%d\n" ,c );
c = func(c);
printf ("c=%d\n" ,c );
}
Erste Ausgabe ist c = 10, das ist klar. So dann gehts aber durch die If zu c = int ( also kein konkreter Wert)... Wenn dann die func(c) mit diesem Wert als Parameter ausgeführt wird: greift das Programm dann auf das externe c zu?
Das Problem ist auch noch, dass wenn ich das ganze durch den Compiler jage folgendes rauskommt:
Code:
c=10
c=1606422620
c=-1082122066
c=10
c=1606422630
c=1606422640
und bei nem Kollegen
Code:
c=10
c=10
c=10
c=10
c=20
c=30