överraska hur hur det kommer att hända!!!

G

grittinjames

Guest
hai kommentar bara om det här problemet i C int * p = null; * p = 10, printf ("% d", * p), tryckt svaret är 10, i en nollpekare där detta 10 är lagrad PLZ berätta
 
Du måste ge pekaren en giltig adress för att peka på, innan du använder den. int x = 3, INT * p1, / ​​/ ​​P1, P2 har ett slumpmässigt adresser int * p2, * p1 = null; / / skrivning noll (NULL) till en odefinierad adress / / innehållet i okänd adress (P1) ( som kan användas av en annan variabel) är skadad * P1 = 10, / / ​​skriver 10 till samma odefinierade adress printf ("% d", * p1), / / ​​det kommer ut 10 förstås, 10 lagrades någonstans i minne / / men här: P2 = &x; / / p2 tar en adress som vi vet (x adress) * 2 am = 3, / / ​​skriva till adressen vi vill printf ("% d", * 2 am), / / ​​utskrifter 3
 
[Kod] int * p = null; [/code] Detta tilldelar ett värde (förmodligen noll) till p och förklarar p är en pekare till ett heltal. Lagringen pekas ut av p nu börjar vid adress plats 0 och inkluderar de närmaste angränsande platser som krävs för att lagra ett heltal. Till exempel, om din heltal storlek är 32 bitar, p nu en referens för att hantera lägen 0 till 3. [Kod] * p = 10, [/code] Detta lagrar heltalsvärdet 10 på adressplatser 0-3 (förutsatt 32 bitars heltal), vilket skrivs allt tidigare lagrats i dessa platser. Vid det här laget har du förmodligen bara trashed lagring som används för något annat ändamål. [Kod] printf ("% d", * p) [/code] Detta hämtar och visar innehållet i lägen 0-3.
 

Welcome to EDABoard.com

Sponsor

Back
Top