Rozdiel medzi typom hodnoty a referenčným typom

Kľúčový rozdiel - typ hodnoty vs referencie typ
 

Programovací jazyk je navrhnutý tak, aby poskytoval počítaču pokyny na vykonávanie úloh. Program môže manipulovať s údajmi obsahujúcimi čísla, znaky a reťazce a vytvárať informácie pre používateľa. Postupnosť inštrukcií napísaných v špecifickom programovacom jazyku je program. V programovacích jazykoch, ako je C #, existujú symboly. Sú to kľúčové slová, identifikátory, literály a operátory. Vyhradené miesta v pamäti na ukladanie údajov sa nazývajú premenné. Premenná môže uložiť hodnotu určitého typu. Dátové typy možno rozdeliť na typ hodnoty a typ odkazu. Rozlišovanie medzi typom hodnoty a typom odkazu závisí od dvoch znakov. Tam sú premenné uložené v pamäti a ako sa správajú pomocou príkazu na priradenie. Tento článok popisuje rozdiel medzi typom hodnoty a typom odkazu. kľúčový rozdiel medzi typom hodnoty a referenčným typom je typ hodnoty uchováva údajovú hodnotu vo svojom vlastnom pamäťovom priestore, zatiaľ čo referenčný typ obsahuje ukazovateľ na iné miesto v pamäti, v ktorom sú uložené údaje.

OBSAH

1. Prehľad a kľúčový rozdiel
2. Čo je to typ hodnoty
3. Čo je typ referencie
4. Podobnosti medzi typom hodnoty a typom referencie
5. Porovnanie vedľa seba - typ hodnoty verzus referenčný typ v tabuľkovej forme
6. Zhrnutie

Čo je typ hodnoty?

Typy hodnôt je možné rozdeliť do dvoch kategórií. Sú to preddefinované typy a užívateľom definované typy. Preddefinované typy sú poskytované programovacím jazykom. Môžu to byť číselné, znakové alebo desiatkové. Numerické typy môžu byť integrálne typy, typy s pohyblivou rádovou čiarkou a desatinné typy. Integrálne typy možno ďalej klasifikovať na podpísané a nepodpísané. Podpísané celé čísla môžu ukladať kladné alebo záporné číslo. Sbyte, short, int a long sú podpísané dátové typy.

Sybte je jeden bajt, krátky sú dva bajty, int sú štyri bajty a dlhé je osem bajtov. Nepodpísaný typ ukladá kladné hodnoty. Bajt, usort, uint a ulong sú príklady pre nepodpísané typy. Typy s pohyblivou rádovou čiarkou môžu uložiť číselnú hodnotu s desatinnou čiarkou. Float je na uloženie 32-bitovej jedinej presnej hodnoty s pohyblivou rádovou čiarkou a dvojitý sa používa na uloženie 64-bitovej jednoduchej presnej pohyblivej rádovej čiarky. Desiatkový typ slúži na hodnoty vysokej presnosti. Typ údajov char sa používa na uloženie jedného znaku do pamäte. Niekedy je potrebné uložiť skutočnú alebo nepravdivú hodnotu. Boolean sa na to používa. Toto je niekoľko príkladov typov hodnôt poskytovaných programovacím jazykom.

Užívateľ môže tiež vytvárať typy hodnôt. Dva takéto typy hodnôt definované používateľom sú štruktúra a číslovanie. Štruktúra obsahuje údaje rôznych typov. Je to podobné ako v triede. Kľúčové slovo „struct “sa používa na deklarovanie premennej štruktúry. Príklad štruktúry je nasledujúci.

struct Employee

verejné int empNo;

názov verejného reťazca;

Čísla sa používajú na zvýšenie čitateľnosti kódu. Používa sa na pomenovanie čísel. Kľúčové slovo „enum“ sa používa na deklarovanie enumerácie. Príklad výčtu je nasledujúci. napr. - enum Farba čierna, biela, fialová. Kľúčové slovo enum automaticky vymenuje zoznam slov priradením hodnôt začínajúcich od 0. Podľa vyššie uvedeného príkladu je čierna priradená 0, biela je priradená 1 a fialová je priradená 2. Ak je napísané ako enum Color black, biela = 3, fialová, potom je čierna priradená 0 ​​a fialová 4. Toto sú niektoré príklady typov hodnôt. Sú uložené v zásobníku. Pri priradení hodnoty inej premennej sa táto hodnota skopíruje do nového umiestnenia. Preto v pamäti existujú dve kópie rovnakej hodnoty.

Čo je typ odkazu?

Referenčné typy možno rozdeliť do dvoch kategórií ako užívateľsky definované a preddefinované typy. Niektoré príklady typov definovaných používateľom sú triedy, rozhrania a polia. Trieda sa používa na vytváranie objektov. Trieda pozostáva z dátových členov a metód. Členovia údajov opisujú atribúty a metódy opisujú správanie. Rozhranie obsahuje iba vyhlásenie členov. Členovia by mali byť definovaní odvodenou triedou. Pole môže uchovávať viac prvkov toho istého dátového typu.

Preddefinované typy sú typ objektu a typ reťazca. Typ objektu je základný typ pre všetky ostatné typy definované používateľom. Odkazy na objekty sa používajú na naviazanie na objekt akéhokoľvek konkrétneho typu. Reťazcové literály sú uložené v reťazcových objektoch ako hodnoty. Pomocou nich je možné vykonávať operácie ako kopírovanie, porovnávanie a zreťazenie. Toto je niekoľko príkladov referenčného typu. Referenčné typy sa ukladajú na hromadu. Keď priradíte jednu referenčnú premennú inej referenčnej premennej, skopíruje sa iba referencia. Skutočná hodnota zostáva rovnaká.

Aká je podobnosť medzi typom hodnoty a referenčným typom?

  • Typ hodnoty aj typ odkazu sú kategórie dátových typov v programovaní.

Aký je rozdiel medzi typom hodnoty a typom referencie?

Typ hodnoty verzus referenčný typ

Typ hodnoty uchováva údajovú hodnotu vo svojom vlastnom pamäťovom priestore. Referenčný typ obsahuje ukazovateľ na iné miesto v pamäti, v ktorom sú uložené údaje.
 prideľovanie
V type hodnoty sa hodnota skopíruje do nového umiestnenia, takže v pamäti existujú dve identické kópie rovnakej hodnoty. V type odkazu sa skopíruje odkaz, zatiaľ čo skutočná hodnota zostáva rovnaká.
Uložené miesto
Typ hodnoty je uložený v zásobníku. Na haldu sa uloží referenčný typ.
 Príklady
Int, float, double, struct, enum sú niektoré príklady typov hodnôt. Trieda, pole, rozhranie sú niektoré príklady referenčných typov.

zhrnutie - Typ hodnoty vs referencie typ

Dáta sú uložené na vyhradených miestach pamäte známych ako premenné. Každá premenná ukladá špecifický typ údajov. Typy údajov je možné rozdeliť do dvoch kategórií. Ide o typ hodnoty a typ odkazu. Rozdiel medzi typom hodnoty a referenčným typom je v tom, že typ hodnoty uchováva údajovú hodnotu vo svojom vlastnom pamäťovom priestore, zatiaľ čo referenčný typ drží ukazovateľ na iné miesto v pamäti, v ktorom sú uložené údaje..

referencie:

1.Typ hodnoty a typ odkazu, TutorialsTeacher.com. K dispozícii tu
2. Balgurusamy, E. Programovanie v C #, premier. Štvrté vydanie, McGraw Hill Education (India) Private Limited, 2016.