Język programowania jest przeznaczony do przekazywania komputerowi instrukcji wykonywania zadań. Program może manipulować danymi zawierającymi liczby, znaki i ciągi oraz wytwarzać informacje dla użytkownika. Sekwencja instrukcji napisanych w określonym języku programowania to program. W językach programowania, takich jak C #, są tokeny. Są to słowa kluczowe, identyfikatory, literały i operatory. Zarezerwowane lokalizacje pamięci do przechowywania danych nazywane są zmiennymi. Zmienna może przechowywać wartość określonego typu. Typy danych można podzielić na typ wartości i typ odniesienia. Rozróżnienie między typem wartości a typem odniesienia zależy od dwóch cech. To tam, gdzie zmienne są przechowywane w pamięci i jak zachowują się z instrukcją przypisania. W tym artykule omówiono różnicę między typem wartości a typem odniesienia. The kluczowa różnica między typem wartości a typem odniesienia jest to typ wartości przechowuje wartość danych we własnej przestrzeni pamięci, podczas gdy typ referencyjny zawiera wskaźnik do innej lokalizacji pamięci, w której przechowywane są dane.
1. Przegląd i kluczowa różnica
2. Co to jest typ wartości
3. Co to jest typ odniesienia
4. Podobieństwa między typem wartości a typem odniesienia
5. Porównanie obok siebie - typ wartości vs typ odniesienia w formie tabelarycznej
6. Podsumowanie
Typy wartości można podzielić na dwie kategorie. Są to typy predefiniowane i typy zdefiniowane przez użytkownika. Predefiniowane typy są dostarczane przez język programowania. Mogą być liczbowe, znakowe lub dziesiętne. Typami numerycznymi mogą być typy całkowite, typy zmiennoprzecinkowe i typy dziesiętne. Typy całkowe można dalej podzielić na podpisane i niepodpisane. Podpisane liczby całkowite mogą przechowywać liczbę dodatnią lub ujemną. Sbyte, short, int i long są podpisanymi typami danych.
Sybte to jeden bajt, krótki to dwa bajty, int to cztery bajty, a długi to osiem bajtów. Typ bez znaku przechowuje wartości dodatnie. Bajt, ushort, uint i ulong są przykładami typów niepodpisanych. Typy zmiennoprzecinkowe mogą przechowywać wartość liczbową z kropką dziesiętną. Liczba zmiennoprzecinkowa służy do przechowywania 32-bitowej wartości zmiennoprzecinkowej pojedynczej precyzji, a liczba podwójna służy do przechowywania 64-bitowej zmiennoprzecinkowej pojedynczej precyzji. Typ dziesiętny służy do uzyskania wysokiej dokładności. Typ danych char służy do przechowywania pojedynczego znaku w pamięci. Czasami wymagane jest przechowywanie wartości true lub false. Do tego służy wartość logiczna. Oto kilka przykładów typów wartości dostarczonych przez język programowania.
Użytkownik może również tworzyć typy wartości. Dwa takie typy wartości zdefiniowane przez użytkownika to struktura i wyliczenia. Struktura zawiera dane różnych typów. Jest podobny do klasy. Słowo kluczowe „struct ”służy do deklarowania zmiennej struktury. Przykład struktury jest następujący.
struct Pracownik
public int empNo;
nazwa publicznego ciągu;
Wyliczenia służą do zwiększenia czytelności kodu. Służy do nadawania nazw numerom. Słowo kluczowe „enum” służy do deklarowania wyliczenia. Przykład wyliczenia jest następujący. na przykład - Kolor enum czarny, biały, fioletowy. Słowo kluczowe enum automatycznie wylicza listę słów, przypisując wartości zaczynające się od 0. Zgodnie z powyższym przykładem czarny jest przypisany 0, biały jest przypisany 1, a fioletowy jest przypisany 2. Jeśli jest zapisany jako enum Kolor czarny, biały = 3, fioletowy, następnie czarny ma przypisane 0, a fioletowy ma przypisane 4. Oto kilka przykładów typów wartości. Są one przechowywane na stosie. Przypisując wartość do innej zmiennej, wartość jest kopiowana do nowej lokalizacji. Dlatego w pamięci istnieją dwie kopie tej samej wartości.
Typy odniesienia można podzielić na dwie kategorie jako typy zdefiniowane przez użytkownika i typy predefiniowane. Niektóre przykłady typów zdefiniowanych przez użytkownika to klasy, interfejsy i tablice. Klasa służy do tworzenia obiektów. Klasa składa się z elementów danych i metod. Członkowie danych opisują atrybuty, a metody opisują zachowanie. Interfejs zawiera tylko deklarację członków. Elementy powinny być zdefiniowane przez klasę pochodną. Tablica może przechowywać wiele elementów tego samego typu danych.
Predefiniowane typy to typ obiektu i typ ciągu. Typ obiektu jest typem podstawowym dla wszystkich innych typów zdefiniowanych przez użytkownika. Odwołania do obiektu są używane do wiązania z obiektem dowolnego określonego typu. Literały ciągów są przechowywane w obiektach ciągów jako wartości. Korzystając z nich, można wykonywać takie operacje, jak kopiowanie, porównywanie i konkatenacja. Oto kilka przykładów typu odniesienia. Typy referencyjne są przechowywane na stercie. Przy przypisywaniu jednej zmiennej referencyjnej do innej zmiennej referencyjnej kopiowana jest tylko referencja. Rzeczywista wartość pozostaje taka sama.
Typ wartości a typ odniesienia | |
Typ wartości zawiera wartość danych we własnej przestrzeni pamięci. | Typ odniesienia zawiera wskaźnik do innej lokalizacji pamięci, w której przechowywane są dane. |
Zadanie | |
W typie wartości wartość jest kopiowana do nowej lokalizacji, więc w pamięci znajdują się dwie identyczne kopie tej samej wartości. | W typie odniesienia odniesienie jest kopiowane, podczas gdy rzeczywista wartość pozostaje taka sama. |
Zapisana lokalizacja | |
Typ wartości jest przechowywany na stosie. | Typ odwołania jest przechowywany na stercie. |
Przykłady | |
Int, float, double, struct, enum to niektóre przykłady typów wartości. | Klasa, tablica, interfejs to niektóre przykłady typów referencji. |
Dane są przechowywane w zarezerwowanych lokalizacjach pamięci zwanych zmiennymi. Każda zmienna przechowuje określony typ danych. Typy danych można podzielić na dwie kategorie. Są to typy wartości i typy referencyjne. Różnica między typem wartości a typem odniesienia polega na tym, że typ wartości przechowuje wartość danych we własnej przestrzeni pamięci, podczas gdy typ odniesienia zawiera wskaźnik do innej lokalizacji pamięci, w której przechowywane są dane.
1.Typ wartości i typ odniesienia, TutorialsTeacher.com. Dostępny tutaj
2. Balagurusamy, E.. Programowanie w C #, Premier. Wydanie czwarte, McGraw Hill Education (India) Private Limited, 2016.