WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 03.01.2002, 14:04   #1
Belgarath
Master
 
Registriert seit: 16.11.2000
Beiträge: 530


Standard

ohne es jetzt prüfen zu können (arbeite in der fa. auf ibm-mainframe): ich glaube, Dein 2. Ansatz ist jetzt 'richtig falsch' *g*

Warum?

Code:
  for(i=0; i<100; iwerte[i++]= pow(i+1,2));
erster Durchlauf:
Code:
  iwerte[0] = pow(1+1,2);
also konkret:
Code:
  iwerte[0] = 4;
in weiterer Folge:
Code:
  iwerte[1] = 9;
  iwerte[2] = 16;
usw.

Code:
  for (i=0; i<100; printf("%d\t%d\n", (i++)+1, iwerte[i]));
erster Durchlauf:
Code:
  printf("%d\t%d\n", (0)+1, iwerte[1]));
Ausgabe:
Code:
  1      9
  2      16
usw.

Bei i=99 (also letzter Schleifendurchlauf) würde das Prog versuchen, auf iwerte[100] zu zu greifen, was entweder einen Zufallswert oder (hängt von Compiler und Einstellung ab) einen Absturz (segmentation fault) zu Folge haben müßte.

korrekt wäre IMHO (wie prinzipiell auch schon in meinem letzten Posting angegeben) :
Code:
  for ( i = 0; i < 100; iwerte[i] = pow( ++i, 2) );
  for ( i = 0; i < 100; printf( "%d\t%d\n", i + 1, iwerte[i++] ) );
Aber einfach ausprobieren, wenn Du mir nicht glauben solltest ...

lg
Belgarath
Belgarath ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:01 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag