Gå til innhold

Enkle spørsmål til C++


Anbefalte innlegg

Kan noen hjelpe til med svar på følgende:

 

EKSEMPEL 1:

#include <iostream>

int main()

{

int a, b, c, d;

// programlinjer foran

if (a>b) c=50;

else c=25;

//programlinjer bak

return 0;

}

 

EKSEMPEL 2:

#include <iostream>

int main()

{

int a, b, c, d;

// programlinjer foran

{

if (a>b) c=50;

else c=25;

}

//programlinjer bak

return 0;

}

 

Spørsmål 1:

Har klammeparentesene rundt if-else setningene noen betydning i eksempel 2? Når har slike klammeparenteser inne i hovedprogrammet betydning?

 

Må de to if-else linjene stå rett etter hverandre? Går det an å legge inn for eksempel en output-setning mellom dem?

 

Håper på svar.

Lenke til kommentar
Videoannonse
Annonse

Quote:


On 2002-03-16 12:50, øsse87 skrev:

Kan noen hjelpe til med svar på følgende:


EKSEMPEL 1:

#include <iostream>

int main()

{

int a, b, c, d;

// programlinjer foran

if (a>b) c=50;

else c=25;

//programlinjer bak

return 0;

}


EKSEMPEL 2:

#include <iostream>

int main()

{

int a, b, c, d;

// programlinjer foran

{

if (a>b) c=50;

else c=25;

}

//programlinjer bak

return 0;

}


Spørsmål 1:

Har klammeparentesene rundt if-else setningene noen betydning i eksempel 2? Når har slike klammeparenteser inne i hovedprogrammet betydning?


I ditt eksempel har de ingen betydning. De brukes til å dele opp programkode i "logiske" blokker, f.eks. i if - else (se under).

 

Quote:


Må de to if-else linjene stå rett etter hverandre? Går det an å legge inn for eksempel en output-setning mellom dem?


...du kan skrive

 

if (a>b)

{ c=50; cout << "Hei på deg, c er nå 50n"; }

else

{ c=25; cout << "c er nå 25n"; }

 

...hvis det var det du lurte på.

Lenke til kommentar
  • 2 måneder senere...

Men bare husk en ting, når du definerer en variabel a,b,c og ikke gir dem noe verdier i hele programmet, vil du få en logisk feil når du sier

 

if(a>b), du har jo ikke gitt dem noe verdier, så du kan ikke teste på dem heller.

Lenke til kommentar

Quote:


Den 2002-05-24 12:34, CaSh skrev:

Men bare husk en ting, når du definerer en variabel a,b,c og ikke gir dem noe verdier i hele programmet, vil du få en logisk feil når du sier


if(a>b), du har jo ikke gitt dem noe verdier, så du kan ikke teste på dem heller.



 

når du ikke gir dem verdier, får dem ikke så standardverdi på 0?

Lenke til kommentar

Quote:


Den 2002-05-24 13:13, sjanten skrev:

Quote:


Den 2002-05-24 12:34, CaSh skrev:

Men bare husk en ting, når du definerer en variabel a,b,c og ikke gir dem noe verdier i hele programmet, vil du få en logisk feil når du sier


if(a>b), du har jo ikke gitt dem noe verdier, så du kan ikke teste på dem heller.



 

når du ikke gir dem verdier, får dem ikke så standardverdi på 0?

 

Nei det gjør dem ikke. Dere kan selv prøve. Bare skriv int c; og cout << c; Det som blir skrevet ut er sikkert 02390298JFF. Som er da minne adressen til stedet den har reservert plass i minnet.

 

_________________

M0re M0ney M0re D0llars

 

[ Denne Melding var redigert av: CaSh på 2002-05-24 20:02 ]

Lenke til kommentar

Quote:


Den 2002-05-24 13:17, DrDoogie skrev:

Enkle variable blir initialisert til null( 0 ) ja.


a > b hvor a og b er null er like fullt en logisk feil.


Samme som aa si if(0).


 

I C++ blir ikke variabler automatisk initialisert til noen standardverdi. (som de blir i feks Java). De vil ha den verdien som tilfeldigvis lå fra før i den minneposisjonen de blir tildelt. Dette er av effektivitetsgrunner. Det brukes ikke tid på å sette en variabel hvis du ikke ber om det.

 

if(null) er fullstendig lovlig og returnerer false. Svært nyttig til å teste på nullpekere.

 

LeD

Lenke til kommentar

Quote:



I C++ blir ikke variabler automatisk initialisert til noen standardverdi. (som de blir i feks Java). De vil ha den verdien som tilfeldigvis lå fra før i den minneposisjonen de blir tildelt. Dette er av effektivitetsgrunner. Det brukes ikke tid på å sette en variabel hvis du ikke ber om det.


if(null) er fullstendig lovlig og returnerer false. Svært nyttig til å teste på nullpekere.


LeD


 

Sa ikke jeg dette?

Lenke til kommentar

Quote:


Den 2002-05-26 13:44, CaSh skrev:


Sa ikke jeg dette?



 

Nei, du sa at

 

int c;

cout << c;

 

vil skrive ut minneadressen til c. Det er ikke riktig. Dette vil skrive ut verdien til c, som er det som tilfeldigvis ligger på adressen til c.

 

cout << &c;

vil skrive ut minneadressen til c.

 

:smile:

 

LeD

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...