Hem Personliga finanser Hur man kontrollerar en variabels läge i C-programmering - dummies

Hur man kontrollerar en variabels läge i C-programmering - dummies

Video: mario (less comfortable) (C) 2024

Video: mario (less comfortable) (C) 2024
Anonim

I C-programmeringen avgränsas en variabels typ och storlek först genom att deklarera variabeln som en specifik typ, men också genom att använda sizeof nyckelordet. Den andra beskrivningen av en variabel, dess innehåll, kan tas upp genom att läsa variabelns värde med hjälp av lämplig C-språkfunktion.

Den tredje beskrivningen av en variabel är dess plats i minnet. Du samlar denna information med hjälp av & operatören och% p platshållaren, som visas i O Variabel, varför är du?

O VARIABEL, VAR HÄR KONST SOM?

#include int main () {char c = 'c'; int i = 123; float f = 98. 6; dubbel d = 6 022E23; printf ("Adress till" c "% pn", & c); printf ("Adress till" i "% pn", & i); printf ("Adress till" f '% pn ", & f); printf ("Adress till" d '% pn ", & d); returnera (0);}

När & operatören prefixar en variabel returnerar det ett värde som representerar variabelns adress, eller dess plats i minnet. Det värdet uttrycks i hexadecimalt. För att se det värdet används konverteringstexten% p, som visas i O Variabel, varför är du?

Övning 1 : Skriv källkoden från O Variabel, varför är du? till din redaktör. Bygg och kör.

Resultaten som produceras av programmet som genereras från Exercise 1 är unika, inte bara för varje dator utan också potentiellt för varje gång programmet körs.

Adress för 'c' 0x7fff5fbff8ff Adress till 'i' 0x7fff5fbff8f8 Adress till 'f' 0x7fff5fbff8f4 Adress till 'd' 0x7fff5fbff8e8

Variabel c lagras i minnet på plats 0x7fff5fbff8ff - det är decimalplats 140, 734, 799, 804, 671. Båda värdena är triviala, naturligtvis; datorn håller reda på minnesplatserna, vilket är bra för mig.

Den här illustrationen visar hur adresserna kartläggs i minnet.

Individuella arrayelement har också minnesplatser, som visas i minnesplatser i en array på rad 10. Operatören prefixar den specifika elementvariabeln och hostar upp en adress. Konverteringspersonen% p i funktionen printf () visar adressen.

MEMORY PLACERINGAR I EN ARRAY

#include int main () {char hej [] = "Hej!"; int i = 0; medan (hej [i]) {printf ("% c vid% pn", hej [i], och hej [i]); I ++;} returnera (0);}

Övning 2 : Skapa ett nytt projekt med hjälp av källkoden som visas i minnesplatser i en array. Bygg och kör.

Återigen är minnesplatsutgången unik på varje dator.

H vid 0x7fff5fbff8f0e vid 0x7fff5fbff8f1 l vid 0x7fff5fbff8f2 l vid 0x7fff5fbff8f3 o vid 0x7fff5fbff8f4!vid 0x7fff5fbff8f5

Till skillnad från exemplet från övning 1 är adresserna som genereras av övning 2 angränsande i minnet, en byte efter en annan.

Övning 3 : Koda ett program för att visa fem värden i en int array tillsammans med varje elements minnesadress. Du kan använda Memory Locations i en Array för att inspirera dig, även om en för loop kan vara enklare att koda.

  • Förresten ska operatören & minnesplatsen vara bekant för dig. Den används av funktionen scanf (), som kräver en variabels adress, inte själva variabeln. Det beror på att scanf () placerar ett värde direkt på en minnesplats. Hur? Genom att använda pekare, förstås!

  • Operatören är också bitvis AND-operatören; kompilatorn är dock smart nog att berätta när & prefixar en variabel och när & ingår i en binär matematikekvation.

Hur man kontrollerar en variabels läge i C-programmering - dummies

Redaktörens val

Nätverksenheter och tjänster Översikt för certifikatprov på CCENT-dummies

Nätverksenheter och tjänster Översikt för certifikatprov på CCENT-dummies

Du kan vara säker på att få några frågor om certifieringsexamen som testar din kunskap om typer av enheter och olika nätverkstjänster. Nedan följer några viktiga punkter att komma ihåg om enheter och tjänster: Nätverksenheter Hubb: Ett nav är en lag 1-enhet som används för att ansluta system tillsammans. När ...

OSI-modell för CCENT-certifieringsexamen - dummies

OSI-modell för CCENT-certifieringsexamen - dummies

Certifieringen certifierar dig kraftigt på OSI-modellen och olika protokoll och enheter som körs på varje lager av OSI-modellen. I följande tabell granskas OSI-modellen genom att ge dig en beskrivning av varje lager och exempel på protokoll och enheter som körs i varje lager. Layer Beskrivning Exempel 7. Applikation ...

OSI-modell för Cisco ICND1-certifieringsexamen - dummies

OSI-modell för Cisco ICND1-certifieringsexamen - dummies

Cisco ICND1-certifieringsexamen testa dig kraftigt på OSI modell och de olika protokoll och enheter som körs i varje lager av OSI-modellen. Följande granskar OSI-modellen genom att ge dig en beskrivning av varje lager och exempel på protokoll och enheter som körs i varje lager. Layer Beskrivning Exempel 7. Applikation ...

Redaktörens val

Hur man skalar på skifferelement i kantfilm - dummies

Hur man skalar på skifferelement i kantfilm - dummies

Skalar ett element i Adobe Edge Animate betyder i huvudsak att du kan ändra storleken på ett element samtidigt som dess proportioner hålls konsekventa om du vill. Du kan: Skalelement med verktyget Transform Skalaelement från Egenskaper-panelen Skalning med verktyget Transform Om du föredrar att använda en klicka-och-dra-metod för skalering ...

Hur man arbetar med mallar i Adobe Edge Animate - dummies

Hur man arbetar med mallar i Adobe Edge Animate - dummies

Mallar introducerades i Edge Animate 2. 0. Denna funktion tar bort nödvändigheten att återuppfinna hjulet varje gång du vill starta en ny komposition. Visst kan du alltid starta en ny komposition från en sparad fil, men Mallar gör att du kan starta ett nytt projekt som redan innehåller attribut och element som du vill ha.

Keyframes Modes in Edge Animation - dummies

Keyframes Modes in Edge Animation - dummies

Keyframe-verktyg i Edge Animate finns till höger om Play-kontrollerna. För att skapa nyckelfiler automatiskt måste du först aktivera nyckelbilder genom att klicka på den röda stoppklockans ikon. Som standard, när du startar en ny animering, är Stopwatch rött men har gråa linjer som löper genom det (som visat). Här är standardstatus för ...

Redaktörens val

Hur man tolkar figurativt språk för GED RLA-dummiesna

Hur man tolkar figurativt språk för GED RLA-dummiesna

Författare använder språk antingen bokstavligt eller figurativt . GED Reasoning Through Language Arts testet kommer att ha några frågor för att testa din förmåga att identifiera skillnaden. En NASA-vetenskapsman kan beskriva en asteroid väldigt bokstavligt: ​​består huvudsakligen av vatten, blandat med vissa stenar och mindre fasta fragment. Eller kan han eller hon skriva figurativt och beskriva ...

Hur (och var) ska schemalägga för att ta GED-dummiesna

Hur (och var) ska schemalägga för att ta GED-dummiesna

För att ta GED test, schemalägger du det baserat på tillgängliga testdatum. Varje stat eller lokalt testcenter ställer in sitt eget schema för GED-testet, vilket innebär att ditt tillstånd bestämmer hur och när du kan ta varje avsnitt av testet. Det bestämmer också hur ofta du kan återta en misslyckad ...

Hur man förbereder sig på GED RLA Extended Response - dummies

Hur man förbereder sig på GED RLA Extended Response - dummies

Uppsats för utvidgad respons på GED Reasoning Through Language Arts-testet kräver några mycket specifika färdigheter, allt från grammatik och korrekt språkanvändning till förståelse och analysförmåga. Om du någonsin har haft ett argument om vem som har det bästa laget eller vilken arbetsgivare är bättre, vet du redan hur man bedömer argument och svarar. ...