En liknande sak har hänt här. En adress är en pekare. Du kan dela initieringen i deklarationen och uppdrag som i följande kod: #include int main () {char * herStr; herStr = "kvinnan"; printf (herStr); återvända 0; } Vid det här laget kanske du undrar hur man använder printf () funktion och dess argument (punkt inom parentes); oroa dig inte, ska vi studera printf funktionen 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: #include int main () {char * herStr = "kvinnan"; printf ("% c", * herStr); printf ("\\ n"); ++ herStr; printf ("% c", * herStr); printf ("\\ n"); ++ herStr; printf ("% c", * herStr); printf ("\\ n"); å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 (printf funktion), 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 minsk