*   >> Lezen Onderwijs artikelen >> science >> programming

Een diepgaande blik in C ++ Core String

include using namespace std; int main () {const char * str = "een string"; cout 0 terug; } U moet de return waarde van de dubbele aanhalingstekens toe te wijzen aan een const char *. const char * betekent dat de inhoud van het aangewezen object door de aanwijzer constant. In de code, de inhoud is "een string". In het geheugen, de ruimte is een een byte code. Ook, in geheugen de tekenreeks vormen de string eindigt met \\ 0 (hetgeen niet getoond). Nu de inhoud constant is, kun je niet veranderen in het geheugen, een van de personages die in de dubbele aanhalingstekens.

Nou, de inhoud is constant, maar de wijzer is niet constant. Je kunt eigenlijk verhogen de aanwijzer. Constante pointer en constante inhoud zijn niet dezelfde dingen. Merk op dat in de bovenstaande code, de wijzer naar het eerste element van de reeks. In de volgende code wordt de wijzer verhoogd. Een poging wordt gedaan om de gepunte nieuwe teken veranderen en het is verboden. Vanwege deze weigering, de compiler geeft een foutmelding.

Probeer de onderstaande code: #include using namespace std; int main () {const char * str = "een string"; ++ str; * str = 'e'; cout 0 terug; } Constant Pointer en Constant Content We hebben drie situaties waarin een koord kan worden gemaakt gezien. Met alle strings, ongeacht de vorm, de wijzer van het touw moet worden om te wijzen op het eerste residu van de string. Met de tweede en derde bovenstaande gevallen, de wijzer naar de eerste char tijdens de schepping. Bij een array, de wijzer constant, maar de tekens van de tekenreeks (matrix) wijzigen.

Met een letterlijke tekenreeks, de inhoud is constant, wat betekent dat de tekens in de string kan niet worden gewijzigd, maar de wijzer niet constant is, en u kunt de aanwijzer wijzigen. Met de eerste code voorbeeld hierboven, noch de aanwijzer of de string inhoud is constant; ofwel kunnen worden gewijzigd (gewijzigd). We hebben het einde van het artikel bereikt. Ik hoop dat u het op prijs stellen. Chrys

Page   <<  [1] [2] [3] 
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.