Lue ja yrittää seuraava koodi, joka valaisee tätä: # include using namespace std; int main () {char myStr [] = {"t", "h", "e", "", "m", "", "n", "\\ 0 '}; cout palata 0; } Huomaa, että tunniste, myStr varten cout kohde ei ole lainausmerkeissä. Koodissa, viimeinen osa array on null merkki. Se on puolilainausmerkkejä kuten muutkin merkkiä.
Nyt array nimi, joka piti olla tunniste vakio osoitin ensimmäinen osa (kohde) array ja pitäisi palata osoitteen ensimmäinen elementti (kohde) array, nyt palauttaa merkkijonon (merkkiä array ), kun se asetetaan tietyssä kontekstissa, koska joukko on tehty merkkiä ja se päättyy '\\ 0'. Kaikki merkit array palautetaan paitsi null merkki. Tavallisesti osoitin ei pitäisi palauttaa mitään arvoa terävällä esineellä tai teräviä esineitä.
Edellä mainituissa koodi, cout ennalta esine (yhteydessä) on ollut suunnittelu siten, että jos se saa osoitin joukko merkkiä päättyvät, \\ 0 se tulee palauttaa kaikki merkit pakassa paitsi päättyy \\ 0. Tällainen osoitin osoittaa yhä ensimmäistä alkiota, mutta konteksti (cout objekti) voivat käyttää sitä saadakseen kaikki merkit jono. Jatkamme. Silti koodaus merkkijono täyttämällä array elementtejä ja päättyy sen, '\\ 0' ei ole kätevä ohjelmoija. Joten Keksijät C ++ päätti 1) korvaa char array lohko, joka päättyy null merkin merkkijono lainausmerkkeihin.
2) kirjoitettu merkkijono lainausmerkkeihin palauttaa osoittimen (muistiosoite) ensimmäiseen osa korvataan array. 3) Tämä osoitin on merkkijono osoitin ja konteksti (esim cout Object) voivat käyttää sitä palauttaa merkkijonon. 4) palasi osoittimen lainausmerkkeihin, voidaan käyttää alustuksen char osoitin luoda merkkijono. Seuraava koodi havainnollistaa näitä: # include using namespace std; int main () {char * herStr = "nainen"; cout palata 0; } Lue ja yrittää edellä koodi, jos et ole jo tehnyt niin (näyttöön saattaa tulla varoitussanoma mutta vain sivuuttaa sitä nyt).
Huomaa, että alustuksen viitteitä muiden objektityypit, oikea operandi palauttaa osoite (esim & Myint)