Kezdőoldal » Számítástechnika » Programozás » C++-ban char típusú változókna...

C++-ban char típusú változóknak miért nem lehet üres '' kezdőértéket adni?

Figyelt kérdés

2016. máj. 16. 15:51
1 2
 1/11 anonim ***** válasza:

Mert a char pontosan egy karaktert tartalmaz, nem 0-t, nem többet.

Viszont rakhatsz bele 0-t.... (nem '0'-t, ami igazából 48)

2016. máj. 16. 15:55
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:

Tehetsz bele String literalt is (""), ami egy lezart Stringet jelent.


(0, '\0', "" mind3 ugyanazt jelenti.)

2016. máj. 16. 15:59
Hasznos számodra ez a válasz?
 3/11 anonim ***** válasza:

Mert a char számokat tárol, méghozzá 1 byte-osokat.

Üres szám pedig nem létezik.

2016. máj. 16. 15:59
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:
üres string "" esetén fordítási hiba lesz
2016. máj. 16. 16:30
 5/11 anonim ***** válasza:
charba nem tehetsz stringet, ketteske félrebeszél.
2016. máj. 16. 16:40
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:

Talán így gondolta:


char c = ""[0];

2016. máj. 16. 16:57
Hasznos számodra ez a válasz?
 7/11 anonim ***** válasza:

char c = ""[0];


Hát ez aztán sokkal szebb és olvashatóbb, mintha azt írná, hogy

char c = '\0';

Tipikus gányoló programozó kód.

Arról nem beszélve, hogy ennek semmi köze az üres kezdőértékhez, sőt, okozhat igen szép meglepetéseket, ha ezt egy stringnek akarod később kezdőértékként adni...

2016. máj. 16. 17:01
Hasznos számodra ez a válasz?
 8/11 anonim ***** válasza:
Ilyen alapon: char c = ""[0]; ez is lehetne char c = ""[546576591];
2016. máj. 16. 18:11
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:

Őőő. Ezt én írtam: char c = ""[0];

Egy-két dolgot látom hozzá kell tennem.

Valóban gány (csúnya, értelme sincs), de egy szóval sem mondtam, hogy így kell megoldani ezt a problémát, csak "ketteskét" javítottam, ugyanis így tényleg egy lezáró nulla kerül a char változóba.


Előző 2 válaszoló pedig kifejthetné, mi a baj ezzel, főleg az utolsó, mert egyáltalán nem mindegy, hogy melyiket írod (""[123456789]), az egyik biztosan valid memóriaterület, a másik meg nem. Azt se értem, hogy milyen meglepetést okozhatna, mivel ÉRTÉKÜL adja a c-nek a 0-t, egyebet nem csinál.


Megmagyarázzátok?

2016. máj. 16. 18:39
Hasznos számodra ez a válasz?
 10/11 anonim ***** válasza:
Mire rányomtam a küldés gombra már észrevettem, de nem lehet hozzászólást szerkeszteni így hagytam.
2016. máj. 16. 21:09
Hasznos számodra ez a válasz?
1 2

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!