Co to jest adres pamięci?
A adres pamięci to liczba szesnastkowa, która identyfikuje lokalizację danych programu lub instrukcji w pamięci komputera i może być trudna do zrozumienia dla początkujących. Aby bezpośrednio czytać i modyfikować adresy pamięci , potrzebne są wskazówki. Aby znaleźć adres zmiennej, użyj operatora ampersand „&”. Istnieje zmienna wskazująca, w której przechowywany jest adres.
Zrozumienie, jak zorganizowana jest pamięć, ma kluczowe znaczenie dla lepszego zrozumienia adresy pamięci . Bajty tworzą pamięć w programowaniu C, a adresy wskazują, gdzie znajduje się początek każdego bajtu. Innymi słowy, każdy bajt w pamięci ma swój unikalny adres pamięci . Zmienna przechowująca liczbę zajmuje określoną ilość miejsca w pamięci w bajtach, a zmienna adres pamięci odpowiada początkowemu bajtowi zmiennej.
Jak znaleźć adres pamięci?
Istnieją dwa sposoby, które możemy znaleźć adres pamięci w języku programowania C.
Metoda 1: Użycie operatora „&”.
Operator „&” lub symbol ampersand w programowaniu w C może być użyty do znalezienia zmiennej adres pamięci . Ten operator pobiera adres zmiennej w programie. Spójrz na poniższy przykład, aby lepiej zrozumieć tę metodę.
#include
int główny ( ) {
int na jednego = 40 ;
drukujf ( „Wartość num to %d \N ' , na jednego ) ;
drukujf ( „Adres pamięci num to %p \N ' , & na jednego ) ;
powrót 0 ;
}
W powyższym kodzie zmienna całkowita 'na jednego' o wartości 40 jest zdefiniowana. Wartość 'na jednego' i jego adres pamięci jest następnie drukowany przy użyciu printf() funkcji i specyfikatory formatu odpowiednio %d i %p. The '&na jednego' wyrażenie zwraca adres pamięci liczby, która jest następnie pokazywana przy użyciu specyfikatora formatu %p w formacie szesnastkowym.
Wyjście
Notatka: Tę samą metodę można zastosować do znajdowania adresu zmiennych zmiennoprzecinkowych lub typu łańcuchowego w programowaniu w C.
Metoda 2: Używanie wskaźnika
W programowaniu w C możliwe jest również określenie adres pamięci za pomocą wskaźnika. Adres regionu pamięci jest przechowywany w określonym typie danych zwanym wskaźnikiem w języku C. Są one często używane w języku C do manipulowania pamięcią komputera. Aby znaleźć adres pamięci w programowaniu C za pomocą wskaźnika wykonaj poniższe kroki:
Krok 1: Pierwszym krokiem w zlokalizowaniu a adres pamięci jest utworzenie zmiennej wskaźnikowej. Aby utworzyć zmienną wskaźnika w C, nazwę zmiennej należy poprzedzić an znak gwiazdki (*) . Poniższy kod wyjaśnia, jak skonstruować plik „ptr” zmienna wskaźnikowa.
int * ptr ;Notatka: Położenie pamięci zmiennej zapisanej w zmiennej wskaźnikowej jest wskazywane przez znak gwiazdki (*) . Ten proces nazywa się dereferencją.
Krok 2: Zmienna wskazująca otrzyma wtedy lokalizację w pamięci. The adres pamięci istniejącej zmiennej jest przypisywany do zmiennej wskaźnika za pomocą „&” operator. Oto prosty przykład:
int był = 5 ;int * ptr = & był ;
Poniższy przykład demonstruje a adres pamięci w C za pomocą a wskaźnik .
#includeint główny ( ) {
int numer = 100 ;
int * ptr = & numer ;
drukujf ( 'Adres pamięci zmiennej liczbowej: %p \N ' , ptr ) ;
powrót 0 ;
}
Powyższy kod deklaruje zmienną wskaźnikową ptr aby wskazać adres zmiennej całkowitej numer o wartości 100. The printf() funkcja jest następnie używana do drukowania adresy pamięci liczby przy użyciu specyfikatora formatu %p, który drukuje adres pamięci w formacie szesnastkowym.
Wyjście
Ważne jest, aby pamiętać, że adres pamięci zmienia się w zależności od systemu operacyjnego, na którym działa kod. The adres pamięci zwracane w każdym systemie będą się różnić, na przykład, jeśli identyczny kod jest uruchamiany na dwóch oddzielnych komputerach. Dlatego zaleca się działanie z względnymi adresami pamięci zamiast twardego kodowania adresy pamięci w kodzie.
Wniosek
W programowaniu w C, adresy pamięci są kluczowe dla modyfikowania i uzyskiwania dostępu do danych. Aby programowanie odniosło sukces, konieczne jest zrozumienie, jak znaleźć adresy pamięci . W programowaniu w C używamy operator ampersand (&) i wskaźnik, aby znaleźć adres pamięci . Ponieważ wskaźniki mogą być używane do bezpośredniego dostępu i modyfikacji adresy pamięci , są one ważne dla wdrażania programów. Programiści mogą używać adresy pamięci pisać udany kod, pamiętając o tych podstawach.