Hejsan hmm, jag testade skriva char buffer[0]; i min c-kompilator men den fick error. Det är iofs inte konstigt. Om man vill deklerera en array skriver man precis så fast byter ut nollan med det antal man vill ha av en viss typ. <b>max skal ha 50 bokstäver</b>Frågor om C
har gjort ett relativt stort program, dock nybörjar-aktigt, och har några frågor angående detta.
HAr läst lite och förstått på ett ungefär hur man använder sig av char, jag har i alla fall fått det att fungera i mitt program, men skulle ändå vilja ha det förklarat på ett relativt enkelt språk. Vad gör egentligen "char buffer[0];"? Varför har jag en [0] efter? Har det något med erray att göra?
Dessutom har jag en While-loop med i programmet. Har skrivit "While(1)" trots att jag inte har några siffror med (i princip). FUngerar utmärkt med "While(1)", men inte annars. Varför måste jag ha så?
Om någon vänlig själ skulle vara intresserad av att ta en titt på hela mitt program och svara på mina frågor utifrån det skulle jag bli överlycklig. Min msn är: windstalker_hiberna@hotmail.com
Tack på förhand!
Mvh WindSv: Frågor om C
t.ex.char buffer[100];
int massa_tal[20];
struct mystruct personer[5];
En sträng i c är alltid en array av char (character). Så vill man ha en sträng som max skal ha 50 bokstäver kan man skriva.char str[50] = "Detta är en sträng"
ellerchar *str="Detta är en sträng"
Där använde jag pekare istället, men du får läsa om det nånannanstans för det är lite krångligt att förklara på ett enkelt sätt med få ord.
Vad gäller while-satsen så fungerar det på detta sättet. while-blocket utförs så länge det som står innanför parantes är "sant". I realiteten betyder det allt som inte är lik 0. T.ex. kan du använda en konditionell sats som tillexempel så härwhile(3<5)
alltså: så länge 3 är mindre än 5 så ska loopen köras, och det är det ju alltid så loopen kommer köras i oändlighet. Men det finns ett sätt att komma ur while-loopen utan att uttrycket inom parantes är "sant". Då använder man break:
<code>int i=0;
while(1) /* Detta gör att det körs i oändlighet */
{
if(i==5) break; /*Detta bryter oss ur whileloopen så att koden som kommer efter forsätter att utföras*/
i++;
}
</code>
Den loopen kommer att köras fem gånger.
Hoppas du förstod
/Jörgen
Sv:Frågor om C
Blir det inte 49 bokstäver om man skall vara petig. Krävs väl ett null tecken för att terminera strängen.