Einzelnen Beitrag anzeigen
Alt 26.06.2004, 01:47   #13
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

PHP-Code:
char stab(double hm);//oben einmal die Fkt definieren 

void _main(void




printf("\n->%s",stab(hm)); //Aufruf der Fkt. in _main() 





char stab(double hm)  //die Funktion 


    
char *erg/* static steht für Allozierung am Heap, sonst vom Stack.
 static belässt die Variable zwischen zwei Funktionsaufrufen von stab(), während der Speicherplatz von nicht static Variablen per Assemblerbefehl ("unlink") wieder freigegeben wird ! */

 
erg=(char *)"Fehler"//wenn ich char erg[20] schreib gehts komischerweise garnicht(Compile Error) 
     
    
if(hm>0.0
        
erg=(char *)"stabil"
     
    else if(
hm==0.0
        
erg=(char *)"indifferent"
     
    else if(
hm<0.0
        
erg=(char *)"labil";     

return 
erg


zeiger="Literal"; bedeutet: Weise zeiger die Anfangsadresse des Charfeldes "..." - in diesem Fall ist "Literal" gemeint - zu.

char *erg1; ist eine Adressvariable
char erg2[20]; ist ein Characterfeld mit 19+1 (Nullterminierter Sring) oder 20 Elementen.

erg1 ... nimmt Adressen durch eine Zuweisung - also durch den '=' Operator - an.

erg2 ... ist ein Label (Anfangsadresse eines Arrays = Feld = eindimensionale Matrix).

erg2="..."; geht nicht, da erg2 kein L-Wert ist. erg2 kann nicht neu gesetzt werden, da es (=eben das gegenständliche Label) auf eine unveränderliche Speicherplatzposition zeigt.

Ein L-Wert ist eine Variable oder ein Zeiger ...

mfg Kikakater
kikakater ist offline   Mit Zitat antworten