C string en array
-
- Berichten: 197
C string en array
hallo ik ben net begonnen met c programmeren en wil graag weten hoe de koppeling gemaakt word met een array en string. In het onderstaande programma word eerst een array aangemaakt en later word deze aangeroepen:
char str[80];
deze word hier aangeroepen in een subroutine
void writeString (const char *words)
{
while (*words) brackets
{
lcdInfo = *words; lcdInfo
lcdOut ();
*words ++;
}
}
is het zo dat de array str automatisch gekoppeld word aan de Subroutine writeString?
ik heb begrepen dat deze routine open Source is maar kan niet goed zien hoe de koppeling plaatsvind. Wellicht dat iemand mij hier meer over kan vertellen
char str[80];
deze word hier aangeroepen in een subroutine
void writeString (const char *words)
{
while (*words) brackets
{
lcdInfo = *words; lcdInfo
lcdOut ();
*words ++;
}
}
is het zo dat de array str automatisch gekoppeld word aan de Subroutine writeString?
ik heb begrepen dat deze routine open Source is maar kan niet goed zien hoe de koppeling plaatsvind. Wellicht dat iemand mij hier meer over kan vertellen
- Berichten: 310
Re: C string en array
In C gaat niks automatisch
.
Maar het lijkt erop dat er een paar concepten zijn die je nog niet helemaal begrijpt. Je schrijft 'ik heb begrepen dat deze routine open Source is'. Verwijs je hier met 'deze routine' naar de writeString routine? Die lijkt inderdaad Open Source want de code staat in jouw post. Of bedoel je iets anders?
Verder, de regel
char str[80];
doet niks anders dan een stukje geheugen reserveren die groot genoeg is om 80 'char's te plaatsen. Vervolgens wordt er een variabele 'str' gedefinieerd dat een pointer naar een char is. Deze pointer 'wijst' naar het adres van de eerste byte in het gereserveerde stukje geheugen. Verder gebeurt er nog niks.
De code
void writeString(const char *words)
{
...
}
definieert een functie die een pointer naar een char kan ontvangen en daar dan iets mee doet. Je zou ergens anders in je code iets kunnen schrijven als:
writeString(str)
En deze function call zorgt er dan voor dat de variabele 'str' aan de functie 'writeString' wordt doorgegeven waarna de code in die functie wordt uitgevoerd.

Maar het lijkt erop dat er een paar concepten zijn die je nog niet helemaal begrijpt. Je schrijft 'ik heb begrepen dat deze routine open Source is'. Verwijs je hier met 'deze routine' naar de writeString routine? Die lijkt inderdaad Open Source want de code staat in jouw post. Of bedoel je iets anders?
Verder, de regel
char str[80];
doet niks anders dan een stukje geheugen reserveren die groot genoeg is om 80 'char's te plaatsen. Vervolgens wordt er een variabele 'str' gedefinieerd dat een pointer naar een char is. Deze pointer 'wijst' naar het adres van de eerste byte in het gereserveerde stukje geheugen. Verder gebeurt er nog niks.
De code
void writeString(const char *words)
{
...
}
definieert een functie die een pointer naar een char kan ontvangen en daar dan iets mee doet. Je zou ergens anders in je code iets kunnen schrijven als:
writeString(str)
En deze function call zorgt er dan voor dat de variabele 'str' aan de functie 'writeString' wordt doorgegeven waarna de code in die functie wordt uitgevoerd.
-
- Berichten: 197
Re: C string en array
hoi Arjen, ...ahh niets gaat automatisch in c , dat heb ik gemerkt
..
Er stond in mijn boek dat writestring een open source routine was, ik dacht dat dit een apart 'programmaatje' was wat in c werd aangeroepen...maar t is enkel de tekst dus ok..
maar wat ik nog steeds niet helemaal begrijp is hoe de WriteString gekoppeld word aan de char str[80]...als ik nou bijvoorbeeld 2 van deze routines ( 2x char en writestring) heb hoe maak ik dan het onderscheid?
ps de procedure word later in mijn programma inderdaad aangeroepen met :
writeString (" hello World")

Er stond in mijn boek dat writestring een open source routine was, ik dacht dat dit een apart 'programmaatje' was wat in c werd aangeroepen...maar t is enkel de tekst dus ok..
maar wat ik nog steeds niet helemaal begrijp is hoe de WriteString gekoppeld word aan de char str[80]...als ik nou bijvoorbeeld 2 van deze routines ( 2x char en writestring) heb hoe maak ik dan het onderscheid?
ps de procedure word later in mijn programma inderdaad aangeroepen met :
writeString (" hello World")
- Berichten: 310
Re: C string en array
In elk programma mag elke 'naam' maar 1x gedefinieerd zijn. Dus er mag maar 1 implementatie van de routine 'writeString' bestaan. En op ieder moment mag er maar 1x de naam 'str' bestaan. Je kan de variabele naam 'str' wel vaker gebruiken en overschrijven, maar op het moment dat je de routine 'writeString' aanroept zal deze de 'str' gebruiken die op dat moment bekend is. De routine 'writeString' kan niet overschreven worden, deze mag maar 1x gedefinieerd worden.
Wat bedoel je precies met 'koppelen aan'? Dit is niet een heel erg bekende programmeer term
. Je kan de routine 'writeString' toepassen op de variabele 'str'. Dat doe je door
writeString(str)
aan te roepen, dit is een z.g.n. function call. Als je
writeString("hello World")
aanroept dan doe je een function call met als argument een 'string literal'. Hier is "hello World" de string literal, dit is gewoon een string die bij het compileren gewoon letterlijk zo wordt gebruikt als hij er staat (hence the name...). Dit in tegenstelling tot een variabele.
Maar het maakt voor writeString niet uit wat je doet, of je nu de variabele 'str' mee geeft of een string literal, voor die functie ziet dat er hetzelfde uit.
Wat bedoel je precies met 'koppelen aan'? Dit is niet een heel erg bekende programmeer term

writeString(str)
aan te roepen, dit is een z.g.n. function call. Als je
writeString("hello World")
aanroept dan doe je een function call met als argument een 'string literal'. Hier is "hello World" de string literal, dit is gewoon een string die bij het compileren gewoon letterlijk zo wordt gebruikt als hij er staat (hence the name...). Dit in tegenstelling tot een variabele.
Maar het maakt voor writeString niet uit wat je doet, of je nu de variabele 'str' mee geeft of een string literal, voor die functie ziet dat er hetzelfde uit.
-
- Berichten: 197
Re: C string en array

niet helemaal waarom ze de array niet gewoon string hebben genoemd dat zou het
geheel iets overzichtelijker maken voor een beginner en dat is waar dit boek voor bedoeld is...maar bedankt!
ps het is overigens een programmaatje voor een microprocessor het is geschreven in c, wat zijn de verschillen met c++?
- Berichten: 310
Re: C string en array
c is een z.g.n. procedurele taal (soort van lineair, dus je gaat gewoon van boven naar beneden een rijtje commandos af) bedoelt voor heel low-level (bare metal) programmeren. Als het complexer wordt (bijv. GUIs) heb je meer structuur nodig, c++ is een object georienteerde taal die het in staat stelt veel complexere programmas te maken. Maar de taal zelf is dus ook complexer.