infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: alexandru din Aprilie 18, 2009, 10:28:35



Titlul: Siruri de caractere
Scris de: alexandru din Aprilie 18, 2009, 10:28:35
De ceva timp un prieten tot imi pune intrebari legate de  pointeri si siruri de caractere. La majoritatea  i-am explicat ce se intampla , de ce ...etc :D. Dar ieri ma intreaba urmatoarea chestie :
Cod:
//...
int main()
  {
      char  x[]="intrebare";
      cout<<x<<endl;  //afiseaza  "intrebare"
      return 0;
  }
Cod:
int main()
  {
   int  x[]={1,2,3,4};
   cout<<x<<endl; //afiseaza adresa primului element din  vector
return 0;
}
De ce se intrampla acest lucru? Adica de ce la la siruri de caractere afiseaza sirul, iar la tipuri intregi afiseaza adresa primului element ?


Titlul: Răspuns: Siruri de caractere
Scris de: Sima Cotizo din Aprilie 18, 2009, 11:13:53
Pai tipul lui x in al doilea exemplu este int* (pointer). char* e interpretat ca string ("alabala" e tot de tip char*)  si cel mai probabil de-aia stie sa il afiseze automat.

Un raspuns mai sec, dar la fel de adevarat, ar fi: pentru ca asa a fost implementat sa faca :P