چه تفاوتی بین "int؟ X = 0" و "int؟ X = null" وجود دارد وقتی می توان متغیر را در RAM ذخیره کرد؟


پاسخ 1:

نوع nullable شامل یک فیلد اضافی است که نشان می دهد اعتبار صحیح است یا خیر. به نظر می رسد که نمونه شما در C # باشد. در این حالت ، int؟ مخفف مخفف System.Nullable است ، System.Nullable یک نوع عمومی است که یک T را با یک زمینه افزایش اضافی ، HasValue می پیچد. این قسمت bool اضافی به همراه حافظه برای T در حافظه ذخیره می شود. نحو برای انواع ارزش nullable اضافه شده در C # اقدامات اساسی که از این زمینه استفاده می کنند را پنهان می کند.

از نظر مفهومی ، کد به این صورت است:

int؟ x = 0؛ // به x.Value = 0 ترجمه شده است. x.HasValue = درست؛ int؟ x = صفر؛ // ترجمه به x.HasValue = نادرست؛

در هر شرایطی که تمام الگوهای بیت از یک نوع ارزش معتبر باشد ، به عنوان مثال به عنوان مثال ، اعداد صحیح ، زبان باید یک فیلد یا نشانگر اضافی اضافه کند تا نشان دهد آیا یک مقدار معتبر وجود دارد یا خیر؟ اگر کامپایلر در تئوری می دانست که برخی از الگوهای بیت مقادیر معتبر نیستند ، می تواند از یکی از الگوهای نامعتبر برای نشان دادن مقدار تهی و عدم استفاده از حافظه اضافی استفاده کند. اما در عمل ، این احتمالاً غیرممكن است ، بنابراین همیشه از یك بلوك اضافی حافظه استفاده می شود.

ساختار قابل تغییر (سیستم)


پاسخ 2:

این کاملاً به نحوه اجرای زبان برنامه نویسی بستگی دارد. بسته به سخت افزار و کامپایلرهای خاص ، همین زبان می تواند به روش های مختلفی اجرا شود.

با این حال ، در بسیاری از زبان ها ، متغیر مکان ذخیره خاصی را که در آن داده های واقعی ذخیره می شود ، مشخص می کند. اگر متغیر مقداری حتی صفر داشته باشد ، موقعیت تعیین می شود. اگر صفر باشد ، خود محل بر روی یک مقدار بی معنی ، صفر یا در غیر این صورت تنظیم می شود.


پاسخ 3:

این کاملاً به نحوه اجرای زبان برنامه نویسی بستگی دارد. بسته به سخت افزار و کامپایلرهای خاص ، همین زبان می تواند به روش های مختلفی اجرا شود.

با این حال ، در بسیاری از زبان ها ، متغیر مکان ذخیره خاصی را که در آن داده های واقعی ذخیره می شود ، مشخص می کند. اگر متغیر مقداری حتی صفر داشته باشد ، موقعیت تعیین می شود. اگر صفر باشد ، خود محل بر روی یک مقدار بی معنی ، صفر یا در غیر این صورت تنظیم می شود.


پاسخ 4:

این کاملاً به نحوه اجرای زبان برنامه نویسی بستگی دارد. بسته به سخت افزار و کامپایلرهای خاص ، همین زبان می تواند به روش های مختلفی اجرا شود.

با این حال ، در بسیاری از زبان ها ، متغیر مکان ذخیره خاصی را که در آن داده های واقعی ذخیره می شود ، مشخص می کند. اگر متغیر مقداری حتی صفر داشته باشد ، موقعیت تعیین می شود. اگر صفر باشد ، خود محل بر روی یک مقدار بی معنی ، صفر یا در غیر این صورت تنظیم می شود.


پاسخ 5:

این کاملاً به نحوه اجرای زبان برنامه نویسی بستگی دارد. بسته به سخت افزار و کامپایلرهای خاص ، همین زبان می تواند به روش های مختلفی اجرا شود.

با این حال ، در بسیاری از زبان ها ، متغیر مکان ذخیره خاصی را که در آن داده های واقعی ذخیره می شود ، مشخص می کند. اگر متغیر مقداری حتی صفر داشته باشد ، موقعیت تعیین می شود. اگر صفر باشد ، خود محل بر روی یک مقدار بی معنی ، صفر یا در غیر این صورت تنظیم می شود.