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) 2025

Video: mario (less comfortable) (C) 2025
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

Vad är en Java-karta? - dummies

Vad är en Java-karta? - dummies

Arrays och specialiserade listor gör det möjligt att utföra en fantastisk uppsättning uppgifter med Java. Det finns dock situationer där en Java-applikation behöver något som är mer relaterat till en databas, utan att egentligen ha allt databasbagage (som att behöva köpa en separat applikation). Till exempel kanske du vill kunna ...

Några få saker om Java Math - dummies

Några få saker om Java Math - dummies

Tro det eller inte, datorer - även de mest kraftfulla - Ha vissa begränsningar när det gäller att utföra matematiska beräkningar. Dessa begränsningar är vanligtvis obetydliga, men ibland slår de sig och biter på dig. Här är de saker du behöver se upp för när du gör matte i Java. Helhetsflöde Det grundläggande problemet ...

Vad är recursion i Java Programmering? - dummies

Vad är recursion i Java Programmering? - dummies

Rekursion är en grundläggande programmeringsteknik som du kan använda i Java, där en metod kallar sig för att lösa ett problem. En metod som använder denna teknik är rekursiv. Många programmeringsproblem kan lösas endast genom rekursion, och vissa problem som kan lösas med andra tekniker löses bättre genom rekursion. En av ...

Redaktörens val

4 Måste-inkludera i din blogg sidobardesign - dummies

4 Måste-inkludera i din blogg sidobardesign - dummies

Din bloggens sidofält är viktig fastighet som bör innehålla de element du vill ha mest. När du utformar din blogg sidofält kan du dra från en nästan oändlig lista över sidospårelement. Genom att välja noggrant vad som ska inkluderas (och vad som inte ska inkluderas) kan du ställa in din blogg från andra.

5 Användbara Wordpress Plugins - dummies

5 Användbara Wordpress Plugins - dummies

Om du bloggar på en självhävd plattform med WordPress-programvara, är det dags att anpassa din blogg med plug-ins - programvara som kan "anslutas" till din befintliga WordPress bloggprogramvara. Plug-ins gör det möjligt för dig att göra allt från funktionsbildspel i dina blogginlägg för att ansluta sociala medier till din webbplats. Här är fem användbara ...

7 Sätt att erövra Writer's Block som en Blogger - dummies

7 Sätt att erövra Writer's Block som en Blogger - dummies

Varje bloggare möter författarens block i ett tid eller annan. Om du är den typ av bloggare som sköter innehåll varje dag, kan författarens block vara stäverande. Kan du inte ta en paus för att få ditt skrivande mojo tillbaka? Prova en (eller flera) av dessa sju sätt att slå författarens block för att få dig tillbaka ...

Redaktörens val

10 Stora elektronikkomponentkällor - dummies

10 Stora elektronikkomponentkällor - dummies

Letar du efter några bra källor till dina elektroniska delar? Denna lista ger dig några fleråriga favoriter, både inom och utanför Nordamerika. Denna lista är inte uttömmande. Du hittar bokstavligen tusentals specialutbud för ny och begagnad elektronik. Plus, Amazon och eBay ger virtuella marknadsplatser för alla sorters säljare - ...

Elektronik Basics: Resistance - dummies

Elektronik Basics: Resistance - dummies

I elektronikvärlden är motståndet inte meningslöst. Faktum är att motstånd kan vara mycket användbart. Utan motstånd skulle elektronik inte vara möjligt. Elektronik handlar om att manipulera strömmen av ström, och ett av de mest grundläggande sätten att manipulera strömmen är att minska det genom resistans. Utan motstånd strömmar strömmen oreglerad och där ...

Digital elektronik: Så här installerar du BASIC Stamp Editor och Anslut till Stämpeldummorna

Digital elektronik: Så här installerar du BASIC Stamp Editor och Anslut till Stämpeldummorna

För att berätta för BASIC Stamp vad du vill göra i ditt digitala elektronikprojekt måste du programmera det. BASIC Stamp Windows Editor är den programvara som du använder på din dator för att skapa program som kan laddas ner till en BASIC Stamp-mikrokontroller. Denna programvara är tillgänglig gratis från Parallax webbplats. ...