Salut ! As vrea sa-mi explice cineva cateva randuri dintr-un cod c++.. Codul este urmatorul:
int main()
{
char *a, s[20]="Acesta este un sir";
int lg,i;
for(a=s;*a;a++);
lg=a-s;
cout<<"Lungimea sirului este:"<
Este vorba de ultimele 3 randuri, de la acel "for" , nu inteleg logica , cum se calculeaza mai exact.
Răspunsuri la întrebare
Răspuns de
3
char *a
a este un pointer la o variabila de tip char.
char s[20]="Acesta este un sir"
s[0] ='A' s=&s[0]=adresa lui A *s='A'
s[1]='c' &s[1]=s+1 =adresa lui c *(s+1)='c'
s[17]='r' &s[17]=s+17=adresa lui r *(s+17)='r'
s+18=ctrl-z (sfarsit de sir) *(s+18)=0
Ciclul for:
a=s ( a este adresa lui A) *a nu este nul a++
a=s+1 (a este adresa lui c) ............
Ne oprim cand *a=0 adica a este s+18.
Lungimea sirului este s+18-s=18.
moonlight01:
Multumesc mult !
Alte întrebări interesante
Limba rusă,
8 ani în urmă
Engleza,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă