Huis Persoonlijke financiën Hoe de locatie van een variabele te controleren in C-programmering - dummies

Hoe de locatie van een variabele te controleren in C-programmering - dummies

Video: Linux Tutorial for Beginners: Introduction to Linux Operating System 2024

Video: Linux Tutorial for Beginners: Introduction to Linux Operating System 2024
Anonim

In C-programmering worden het type en de grootte van een variabele eerst onthuld door die variabele als een specifiek type te declareren, maar ook door het sizeof-sleutelwoord te gebruiken. De tweede beschrijving van een variabele, de inhoud ervan, kan worden verzameld door de waarde van de variabele te lezen met behulp van de juiste C-taalfunctie.

De derde beschrijving van een variabele is de locatie in het geheugen. U verzamelt deze informatie met behulp van de operator & en de placeholder% p, zoals weergegeven in O Variabele, dus waarom niet?

O VARIABEL, WAARVAN KUN JE DAN?

#include int main () {char c = 'c'; int i = 123; zweven f = 98. 6; dubbele d = 6. 022E23; printf ("Adres van 'c'% pn", & c); printf ("Adres van 'i'% pn", & i); printf ("Adres van 'f'% pn", & f); printf ("Adres van 'd'% pn", & d); return (0);}

Wanneer de & -operator een variabele als prefix gebruikt, retourneert deze een waarde die het -adres van de variabele, of de locatie in het geheugen vertegenwoordigt. Die waarde wordt uitgedrukt in hexadecimaal. Om die waarde te bekijken, wordt het% p conversie-teken gebruikt, zoals getoond in O Variabel, daarom Art Thou?

Oefening 1 : Type de broncode van O Variable, waarom Art Thou? in je editor. Bouw en ren.

De resultaten die door het uit Exercise 1 gegenereerde programma zijn gegenereerd, zijn uniek, niet alleen voor elke computer, maar mogelijk ook voor elke keer dat het programma wordt uitgevoerd.

Adres van 'c' 0x7fff5fbff8ff Adres van 'i' 0x7fff5fbff8f8 Adres van 'f' 0x7fff5fbff8f4 Adres van 'd' 0x7fff5fbff8e8

Variabele c wordt in het geheugen opgeslagen op locatie 0x7fff5fbff8ff - dat is decimale locatie 140 734, 799, 804, 671. Beide waarden zijn natuurlijk triviaal; de computer houdt de geheugenlocaties bij, wat prima is voor mij.

Deze illustratie laat zien hoe die adressen in het geheugen in kaart worden gebracht.

Afzonderlijke arrayelementen hebben ook geheugenlocaties, zoals wordt weergegeven in Geheugenlocaties in een matrix op regel 10. De operator & gebruikt de specifieke elementvariabele als prefix, waarbij een adres wordt opgehoest. Het% p-conversieteken in de printf () -functie geeft het adres weer.

GEHEUGENLOCATIES IN EEN ARRAY

#include int main () {char hello [] = "Hallo!"; int i = 0; while (hallo [i]) {printf ("% c at% pn", hello [i], & hallo [i]); i ++;} return (0);}

Oefening 2 : Maak een nieuw project met behulp van de broncode die wordt weergegeven in Geheugenlocaties in een array. Bouw en ren.

Ook hier is de uitvoer van de geheugenlocatie uniek op elke computer.

H op 0x7fff5fbff8f0 e op 0x7fff5fbff8f1 l op 0x7fff5fbff8f2 l op 0x7fff5fbff8f3 o op 0x7fff5fbff8f4!op 0x7fff5fbff8f5

Anders dan het voorbeeld uit Oefening 1, zijn de adressen die worden gegenereerd door Oefening 2 aangrenzend in het geheugen, de ene byte na de andere.

Oefening 3 : Codeer een programma om vijf waarden weer te geven in een int-array samen met het geheugenadres van elk element. U kunt geheugenlocaties in een array gebruiken om u te inspireren, hoewel een for-lus eenvoudiger te coderen is.

  • Trouwens, de operator & geheugenlocatie zou u bekend moeten zijn. Het wordt gebruikt door de functie scanf (), die het adres van een variabele vereist, niet de variabele zelf. Dat komt omdat scanf () een waarde direct op een geheugenlocatie plaatst. Hoe? Door pointers te gebruiken, natuurlijk!

  • De operator & is ook de bitsgewijze operator AND; de compiler is echter slim genoeg om te weten wanneer & prefix een variabele is en wanneer & onderdeel is van een binaire wiskundige vergelijking.

Hoe de locatie van een variabele te controleren in C-programmering - dummies

Bewerkers keuze

Tien Helpbronnen voor Junos OS - dummies

Tien Helpbronnen voor Junos OS - dummies

Dit is een top-tien lijst met bronnen die u moet zoeken meer informatie over softwarebewerkingen, training en ondersteuning voor Junos - alle extra details die u mogelijk nodig heeft om Junos OS te kunnen configureren en bedienen in uw eigen netwerkimplementaties. CLI Help-commando's Bent u op zoek naar meer achtergrondinformatie over hoe een bepaalde functie ...

De functie van de drie vlakken van Junos netwerk OS - dummies

De functie van de drie vlakken van Junos netwerk OS - dummies

De architectuur van de Junos opererende systeem verdeelt de functies van besturing, services en doorsturen op verschillende niveaus. Elk van de vlakken van Junos OS biedt een kritieke set van functionaliteit in de werking van het netwerk. Besturingsvlak van het Junos-netwerkbesturingssysteem (NOS) Alle functies van het besturingsvlak lopen op ...

De basisprincipes van BGP-routebealing - dummy's

De basisprincipes van BGP-routebealing - dummy's

Het configureren van Border Gateway Protocol (BGP) kan nogal lastig zijn, vooral met grote aantallen peersessies die handmatig moeten worden geconfigureerd. In feite kan in een groot netwerk de full-mesh-vereiste voor IBGP een provisioning-nachtmerrie zijn. BGP's antwoord op de IBGP-paring-configuratie-nachtmerrie die het volledige maaswerk is, wordt routeberefening genoemd. Route ...

Bewerkers keuze

Noodzakelijke elementen voor SEO om hoge trefwoorden te krijgen - dummies

Noodzakelijke elementen voor SEO om hoge trefwoorden te krijgen - dummies

Als de allerbeste locatie op het web staat op de pagina een van de zoekmachines, je moet de SEO-elementen kennen die je daar kunnen brengen. Een goede plek om te beginnen is met zoekwoorden. Zoekmachines gebruiken geavanceerde processen om zoekwoordgebruik en andere factoren te categoriseren en analyseren om erachter te komen ...

Persberichten als bron van SEO-inhoud - dummies

Persberichten als bron van SEO-inhoud - dummies

Het leuke aan persberichten is dat u ze zonder toestemming op uw website kunt gebruiken, en sommige zullen al voor de zoekmachine zijn geoptimaliseerd. Het doel van een persbericht is om het uit te sturen en te zien wie het ophaalt. U hoeft geen contact op te nemen met de eigenaar van het persbericht, omdat ...

Kies een domeinnaam die geoptimaliseerd is voor zoekmachines - dummies

Kies een domeinnaam die geoptimaliseerd is voor zoekmachines - dummies

Zelfs de domeinnaam van uw site moet geoptimaliseerd voor zoekmachines. Zoekmachines lezen uniforme resource locators (URL's), op zoek naar sleutelwoorden erin. Bijvoorbeeld als u een website heeft met de domeinnaam knaagdierracen. com en iemand zoekt Google op knaagdierenraces, Google ziet rodent-racing als een wedstrijd; omdat er een streepje verschijnt tussen de twee ...

Bewerkers keuze

Praxis Elementair onderwijs Examen-Economie - dummies

Praxis Elementair onderwijs Examen-Economie - dummies

U zult enkele basisconcepten van de economie voor de Praxis moeten kennen Elementair onderwijs examen. Elementaire economie onderzoekt de wens voor, de productie van en de verkoop en het gebruik van geld, zowel lokaal als wereldwijd. Het onderwijzen van economie omvat concepten zoals behoeften versus behoeften, kosten en meer tot nadenken stemmende onderwerpen, zoals de volgende: ...

Praxis Elementair onderwijs voor Dummy's Cheat Sheet - dummies

Praxis Elementair onderwijs voor Dummy's Cheat Sheet - dummies

Het Praxis basisonderwijs: Curriculum, instructie en beoordeling examen (5017) bestrijkt een breed scala van wat u moet weten over basisonderwijs. Als u het Praxis Elementary Education: Content Knowledge-examen (5018) neemt, moet u zich ervan bewust zijn dat het de dekking beperkt tot de inhoud van de vier hoofdonderwerpen die een elementaire leraar is ...

Praxis Core For Dummies Cheat Sheet - dummies

Praxis Core For Dummies Cheat Sheet - dummies

Voordat je te opgewonden raakt, begrijp dat de informatie die volgt niet klopt eigenlijk niet over het bedriegen van de Praxis. Het gaat echt meer om de meest efficiënte manieren om je voor te bereiden op het examen. Maar "voorbereidingsblad" heeft niet helemaal dezelfde reden. Trouwens, vals spelen is niet nodig als je weet wat je aan het doen bent, en ...