Kezdőoldal » Számítástechnika » Programozás » (C++) Miért működik ez a kód?

(C++) Miért működik ez a kód?

Figyelt kérdés

char c[10]{'a','s','d'};

cout<<c;


Ez miért működik? Hogy-hogy kiírja az összes elemét mikor csak a tömb nevét adtuk meg de tömb indexet nem?


2015. jan. 2. 16:06
 1/4 anonim válasza:
0%
kapcsos zárójelek helyet csak sima zarójelet használj
2015. jan. 2. 16:18
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

Úgy, hogy C++-ban a típusdefiníciók kicsit jobban ki vannak találva, mint sima C-ben.


A változód nem "char" vagy "char*" típusú, még csak nem is "char[]" hanem "char[10]".

2015. jan. 2. 16:25
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:
Kiegészíteném még annyival, hogy a char tömböket a C++ úgynevezett C-stílussú sztringként kezeli, ezért létezik rá a kiíró operátor
2015. jan. 2. 20:50
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:

A cout << operátora túl van terhelve 'const char *' típusú paraméterre is. A char[] pedig implicit kasztolható const char *-gá. Így a fordító számára érvényes.

Mivel az initializer lsita nem teljes, így a 3. elem után a default zéró '\0' lesz érvényes a többi 7 elemre.

Mivel a const char* C típusú null terminált karaktertömböt tartalmaz, így a kiíratás teljesen legális és helyes.

2015. jan. 9. 18:39
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!