Du kan dela initieringen i deklarationen och uppdrag som i följande kod (om du försöker koden, kan du få ett varningsmeddelande - bara ignorera det för nu): #include using namespace std; int main () {char * herStr; herStr = "kvinnan"; cout återvända 0; } Vid det här laget kanske du undrar hur du använder fördefinierade cout objektet och dess tillhörande operander; oroa dig inte, ska vi studera cout objektet senare i serien. Stränglitteral En sträng inom citationstecken kallas en stränglitteral. Att öka och minska Sträng Pointer Strängt taget, det finns ingen sträng pekare.
Men om du initiera (eller deklarera och tilldela) en sträng som i ovanstående situationer, då kan du säga att du har en sträng pekare. Man kan öka eller minska pekaren (adress i pekarobjekt) för att peka på nästa eller föregående tecken (objekt) i strängen, eftersom strängen är lagrad som en array (som slutar med \\ 0) i minnet.
Läs och prova följande kod, som illustrerar detta (du kan se ett varningsmeddelande - bara ignorera det för nu): #include using namespace std; int main () {char * herStr = "kvinnan"; cout ++ herStr; cout ++ herStr; cout återvända 0; } För att få värdet (char) utpekas av strängen pekaren är dereference operatören (*) används. Konstant pekare till en sträng En konstant pekare till en sträng pekar på det första tecknet i strängen och pekaren (adress i pekaren objekt) kan inte vara förändring. Detta innebär att adressen inte kan ökas eller minskas.
Följande två uttalanden visar hur du kan skapa en konstant pekare till en sträng: char myStr [] = {'t "," h "," e ",' '," m "," a "," n "," \\ 0 '}; char * const myStr = "mannen"; Båda dessa ständiga pekare skulle återvända hela strängen, i ett visst sammanhang (cout objekt), men du kan inte öka eller minska den. Om det i det andra fallet, har du bara ett tecken pekare i stället för en konstant karaktär pekare, då skulle du kunna öka eller min
Att bygga din allra första C # …