Cili është ndryshimi midis "int? X = 0" dhe "int? X = null" kur bëhet fjalë se si ruhet variabla në RAM?


përgjigje 1:

Lloji nullable përmban një fushë shtesë që tregon nëse vlera është e vlefshme. Duket se shembulli juaj është në C #. Në këtë rast, int? është një shkurtim për System.Nullable , System.Nullable është një lloj gjenerik që mbështjell një T me një fushë shtesë bool, HasValue. Kjo fushë shtesë bool është ruajtur së bashku me memorjen për T në memorje. Sintaksa për llojet e vlerës nullable të shtuar në C # fsheh veprimet themelore që përdorin fushën.

Konceptualisht, kodi duket si ky:

int? x = 0; // është përkthyer në x.Value = 0; x.HasValue = e vërtetë; int? x = zero; // përkthehet në x.HasValue = false;

Në çdo situatë në të cilën janë të vlefshme të gjitha modelet bit të një lloji të vlerës, p.sh. Për shembull, numrat e plotë, gjuha duhet të shtojë një fushë ose tregues shtesë për të treguar nëse ekziston një vlerë e vlefshme ose nëse ndryshorja duhet të trajtohet si zero. Nëse përpiluesi e dinte në teori se disa modele bit nuk janë vlera të vlefshme, ai mund të përdorë një nga modelet e pavlefshme për të treguar një vlerë të pavlefshme dhe të mos përdorë memorie shtesë. Në praktikë, megjithatë, kjo është ndoshta e pamundur, kështu që gjithmonë përdoret një bllok shtesë i kujtesës.

Struktura e ndryshueshme (sistemi)


përgjigje 2:

Kjo varet plotësisht nga mënyra se si zbatohet gjuha e programimit. E njëjta gjuhë mund të zbatohet në shumë mënyra të ndryshme në varësi të harduerit dhe përpiluesve specifik.

Sidoqoftë, në shumë gjuhë, ndryshorja identifikon një lokacion specifik ruajtjeje, ku ruhen të dhënat aktuale. Nëse variabla ka një vlerë që është edhe zero, pozicioni përcaktohet. Nëse është zero, vetë vendi është vendosur në një vlerë të pakuptimtë, zero ose ndryshe.


përgjigje 3:

Kjo varet plotësisht nga mënyra se si zbatohet gjuha e programimit. E njëjta gjuhë mund të zbatohet në shumë mënyra të ndryshme në varësi të harduerit dhe përpiluesve specifik.

Sidoqoftë, në shumë gjuhë, ndryshorja identifikon një lokacion specifik ruajtjeje, ku ruhen të dhënat aktuale. Nëse variabla ka një vlerë që është edhe zero, pozicioni përcaktohet. Nëse është zero, vetë vendi është vendosur në një vlerë të pakuptimtë, zero ose ndryshe.


përgjigje 4:

Kjo varet plotësisht nga mënyra se si zbatohet gjuha e programimit. E njëjta gjuhë mund të zbatohet në shumë mënyra të ndryshme në varësi të harduerit dhe përpiluesve specifik.

Sidoqoftë, në shumë gjuhë, ndryshorja identifikon një lokacion specifik ruajtjeje, ku ruhen të dhënat aktuale. Nëse variabla ka një vlerë që është edhe zero, pozicioni përcaktohet. Nëse është zero, vetë vendi është vendosur në një vlerë të pakuptimtë, zero ose ndryshe.


përgjigje 5:

Kjo varet plotësisht nga mënyra se si zbatohet gjuha e programimit. E njëjta gjuhë mund të zbatohet në shumë mënyra të ndryshme në varësi të harduerit dhe përpiluesve specifik.

Sidoqoftë, në shumë gjuhë, ndryshorja identifikon një lokacion specifik ruajtjeje, ku ruhen të dhënat aktuale. Nëse variabla ka një vlerë që është edhe zero, pozicioni përcaktohet. Nëse është zero, vetë vendi është vendosur në një vlerë të pakuptimtë, zero ose ndryshe.