Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++ kysymys char* muuttujasta

Tumettaja [13.01.2009 19:25:55]

#

Olen juuri aloitellut testailemaan c++ kieltä, ja yritän oppia eri muuttujien
käytöstä. Kun luon char-tyyppisen muuttujan seuraavasti:

const char* testi;
testi = "palapalalapapaaala";

Voiko tuohon muuttujaan "testi" nyt änkeä niin paljon merkkejä kun itse haluan, vai voiko tila loppua kesken?

hunajavohveli [13.01.2009 20:01:35]

#

Oleellista on ymmärtää, että merkkejä ei tuossa kopioida testi-muuttujaan, vaan merkkijono sijaitsee jo ohjelman alkaessa vakio-alueella ja muuttujaan kopioidaan ainoastaan merkkijonon sijainnin ilmaiseva muistiosoite. Merkkijonovakioiden ylärajasta en tiedä, mutta kääntäjä kyllä huomauttanee, jos se ylittyy.

os [13.01.2009 20:04:02]

#

Tärkeintä on kuopata heti alkuunsa ajatus, että char* (tai peräti const char*) olisi "muuttuja, jossa on monta charia", ja selvittää kärsivällisesti, miten homma oikeasti toimii. C++-kielessä hakemaasi tarkoitukseen käytetään std::string-merkkijono-oliota. char-tyyppinen muuttuja (ilman tähteä) puolestaan kuvaa yhtä merkkiä.

Deffi [14.01.2009 08:22:18]

#

Binky C++ video about pointers

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta