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

Jewish Funeral Traditions - dummies

Jewish Funeral Traditions - dummies

Judiska begravningar sker vanligen i en synagoge, begravningshem eller på en kyrkogård. Med tradition är judiska begravningar enkla (symboliserar tron ​​att människor är alla lika i döden), men de varierar mycket och har ingen uppsättning liturgi. Att skicka blommor till ett begravnings- eller sorgshem är starkt avskräckt i judendomen. Inte bara kommer ...

Identifiera komplicerade grävande dummies

Identifiera komplicerade grävande dummies

Komplicerat roende är det tekniska namnet som sorgproffs ger till en sorgprocess som sitter fast vid något tillfälle , vilket gör det omöjligt för de förlorade att framgångsrikt starta eller avsluta sorgprocessen. Komplicerat sorg är ofta ett tecken på olösta problem i förhållandet mellan de förlorade och den avlidne som gör det ...

Redaktörens val

Hur man ställer in kartkontroller i Main_iPad. Storyboard i din iOS App - dummies

Hur man ställer in kartkontroller i Main_iPad. Storyboard i din iOS App - dummies

När du har en anpassad vy för MapController i din iOS-app, måste du berätta för iPad-storyboardet att du laddar in din anpassade vy i stället för en UIViewController. Följ dessa steg: Välj Projekt navigator genom att välja Main_iPad. storyboard och välj sedan View Controller i View Controller - Map Scene i dokumentutskriften. ...

Hur man roterar objekt i din iOS-app - dummies

Hur man roterar objekt i din iOS-app - dummies

Här hittar du hur man rotera en vy (i så fall vrid bilen runt) i din iOS-app. För att göra det uppdaterar du den roterande kodstuben du startade med och ersätter den med den fetstilta koden. - (void) rotera {CGAffineTransform transform = CGAffineTransformMakeRotation (M_PI); void (^ animation) () = ^ () {self. bil. transformera = transformera; ...

Hur man ställer in en WeatherController i Main_iPad. storyboard-fil för din iOS-app - dummies

Hur man ställer in en WeatherController i Main_iPad. storyboard-fil för din iOS-app - dummies

Bör du lägga till en ny anpassad vykontroll till din iOS-app innan du fortsätter till dessa steg. Du behöver fortfarande berätta för storyboardet att du vill att den ska ladda den nya anpassade vykontrollen istället för en UIViewController. Följ dessa steg:

Redaktörens val

Spara en grafisk stil i Adobe CS5 Illustrator - dummies

Spara en grafisk stil i Adobe CS5 Illustrator - dummies

Adobe Creative Suite 5 (Adobe CS5) Illustrator tillåter Du sparar en grafisk stil. En grafisk stil är en kombination av alla inställningar du väljer för ett visst filter eller en effekt i Utseendepanelen. Genom att spara informationen i en grafisk stil lagras du dessa attribut så att du snabbt och enkelt kan tillämpa ...

Välj som ett transformationsverktyg i Adobe CS5 Illustrator - dummies

Välj som ett transformationsverktyg i Adobe CS5 Illustrator - dummies

I Adobe Creative Suite 5 (Adobe CS5 ) Illustratör du kan använda markeringsverktyget för att skala och rotera ett valt objekt. Dra begränsningsboxens handtag för att ändra storlek på objektet, eller flytta dig utanför ett handtag och sedan, när markören ändras till en flippig pil (en böjd pil med pilhuvud i båda ändarna), dra till ...

Objekttransformation i Adobe CS5 Illustrator - dummies

Objekttransformation i Adobe CS5 Illustrator - dummies

Verktygen Rotate, Reflect, Scale och Shear i Adobe Creative Suite 5 (Adobe CS5) Illustrator använder alla samma grundläggande steg för att utföra transformationer. Här är fem sätt att transformera ett objekt: en för en godtycklig omvandling och fyra andra för exakta omvandlingar baserat på en numerisk mängd som du anger. Vilkårlig omvandlingsmetod Eftersom detta ...