په C++ کې د Null او Nullptr ترمنځ څه توپیر دی؟ (تفصیل) - ټول توپیرونه

 په C++ کې د Null او Nullptr ترمنځ څه توپیر دی؟ (تفصیل) - ټول توپیرونه

Mary Davis

"Nullptr" یوه کلیدي کلمه ګڼل کیږي چې صفر د پتې په توګه انځوروي، پداسې حال کې چې "نول" د صفر په توګه د عدد په توګه ارزښت لري.

که تاسو یو پروګرامر یاست، تاسو شاید پوه شئ چې د کمپیوټر ژبو پوهیدل څومره مهم دي ترڅو د ښه کوډ کولو لپاره. مګر ځینې وختونه، دا یوازې یو څه ګډوډ وي، او تاسو ممکن د دوو شیانو ترمنځ مخلوط شئ.

په C++ ژبه کې د Null او Nullptr لپاره ورته قضیه ده. اجازه راکړئ تاسو ته ووایم چې دا دوه اصطلاحات څه معنی لري او د دوی دندې تاسو سره د دوی د توپیر او کارولو په پوهیدو کې مرسته کوي.

راځئ په سمه توګه ډوب کړو!

د کمپیوټر ژبې څه دي؟

د کمپیوټر ژبې د کوډ یا نحو په توګه تعریف کیدی شي چې د پروګرامونو او ځانګړو غوښتنلیکونو لیکلو لپاره کارول کیږي.

اساسا، دا یوه رسمي ژبه ده چې د کمپیوټر سره د خبرو اترو لپاره کارول کیږي. په ورته ډول، مختلف هیوادونه مختلف ژبې لري چې د خلکو سره د فکرونو په شریکولو کې مرسته کوي، نو کمپیوټر هم. په عموم کې، د کمپیوټر ژبه په دریو عمده کټګوریو ویشل کیدی شي:

    9>1>اسمبلۍ ژبه

    دا د ټیټې کچې ژبه ګڼل کیږي چې د مایکرو پروسیسرونو لپاره کارول کیږي. او ډیری نور پروګرام وړ وسایل. دا د دوهم نسل ژبه ده. دا د عملیاتي سیسټم لیکلو او د مختلف ډیسټاپ غوښتنلیکونو لیکلو لپاره پیژندل شوی.

  • ماشین ژبه

    دا مورنۍ ژبه د لومړي نسل ژبه ده.دې ته د ماشین کوډ یا حتی د اعتراض کوډ ویل کیږي، چې د 0 او 1 بائنری عددونو سیټ لري. دا عددونه د کمپیوټر سیسټم لخوا پوهیږي او لوستل کیږي چې دوی یې په چټکۍ سره تشریح کوي.

  • د لوړې کچې ژبه

    دا په زړو ژبو کې د پورټ وړتیا مسلو له امله رامینځته شوې. کوډ نشي لیږدولی د دې معنی کوډ په یوه ماشین کې لیکل شوی و. دا ژبه د پوهیدلو لپاره اسانه ده او د کاروونکي دوستانه هم ده.

د ژبې هغه برخه چې کمپیوټر پرې پوهیږي د "بائنری" په نوم پیژندل کیږي. له بلې خوا، په بائنری کې د پروګرام کولو ژبې ژباړه د "تالیف" په نوم پیژندل کیږي.

په لنډه توګه، د پروګرامینګ ژبې خلکو ته اجازه ورکوي چې کمپیوټر ته لارښوونې ورکړي ترڅو دوی لوستل او اجرا کړي. د کمپیوټر هره ژبه خپل ځانګړتیاوې لري، د C ژبې څخه تر python پورې.

دا ژبې د کمپیوټرونو لپاره دا اسانه او چټکه کوي چې لوی او پیچلي ډیټا په ډیر اغیزمن ډول پروسس کړي. نن ورځ په نړۍ کې د پروګرام کولو ډیری ژبې شتون لري. په دې کې یو څو کې جاوا، پایتون، HTML، C، C++، او SQL شامل دي.

سي++ ژبه څه ده؟

C++ ژبه د نړۍ یو له مشهورو پروګرامینګ ژبو څخه ده. تاسو به دا ژبه په عملیاتي سیسټمونو، ګرافیکي کاروونکي انٹرفیسونو، او د نن ورځې نړۍ کې ځای پرځای شوي سیسټمونو کې ومومئ.

دا د کراس پلیټ فارم ژبه ده چې د لوړ فعالیت غوښتنلیکونو جوړولو لپاره کارول کیږي. C++ ژبه جوړه شوهد Bjarne Stroustrup لخوا، څوک چې د C ژبې د جوړولو مسولیت هم لري. لکه څنګه چې د دې نوم څرګند دی، دا ژبه د C ژبې توسیع دی.

دا پروګرام کونکو ته اجازه ورکوي چې د سیسټم سرچینو او حافظې باندې لوړ کنټرول ولري. تاسو شاید فکر وکړئ چې دا لا دمخه تازه شوی. په هرصورت، ژبه په 2011، 2014 او 2017 کې درې ځله تازه شوې. دا له C++ 11، C++ 14 څخه C++17 ته لاړه.

تر نن ورځې پورې، د C++ ژبه د دې د پام وړ وړ وړ وړتیا له امله ډیره ستاینه شوې، جوړونکو ته اجازه ورکوي چې داسې پروګرامونه رامینځته کړي چې کولی شي په مختلف عملیاتي سیسټمونو یا پلیټ فارمونو کې په اغیزمنه توګه پرمخ بوځي.

ولې ډیری C++ کاروي؟

دا ژبه پراخه ده ځکه چې دا د اعتراض پر بنسټ د پروګرام کولو ژبه ده چې پروګرامونو ته روښانه جوړښت وړاندې کوي او د کوډ د بیا کارولو اجازه ورکولو سره د پراختیا لګښتونو کمولو کې مرسته کوي.

د دې د لوړ فعالیت له امله، دا ژبه د لوبو، ډیسټاپ ایپس، براوزرونو، او عملیاتي سیسټمونو پراختیا لپاره کارول کیږي. د دې ژبې بله ځانګړتیا دا ده چې دا د پورټ ایبل دی او یو ته اجازه ورکوي چې غوښتنلیکونه رامینځته کړي چې دوی کولی شي ډیری پلیټ فارمونو سره تطابق وکړي.

که څه هم دا د زده کړې لپاره ترټولو ننګونکي ژبې پیژندل کیږي، دا خپلې ګټې لري. دا د نورو په پرتله پوهیدل خورا ننګونکي دي د هغې د څو تمثیل ژبې او د دې دندو ډیر پرمختللي ترکیب له امله.

که تاسو د C++ ژبه زده کولی شئ، نو دا به ډیر شي چې زده کړئله دې وروسته نورې برنامې ژبې لکه جاوا او پیتون.

په لنډه توګه، C++ یوه عمومي موخه ده، د منځنۍ کچې پروګرامینګ ژبه ده چې دا ممکنه کوي چې دا په "C سټایل" کې کوډ کړئ. په ځینو مواردو کې، تاسو کولی شي په هر شکل کې کوډینګ ترسره کړي، د C++ د هایبرډ ژبې مثال جوړوي.

C او C++ ژبې یو Null کرکټر، یو Null pointer، او Null بیان لري (د سیمیکولون (;) لخوا نمایندګي کیږي).

Null څه شی دی C++؟

Null یو جوړ شوی ثابت ګڼل کیږي چې د صفر ارزښت لري. دا د کمپیوټر په پروګرامینګ کې ثابت او یو پوائنټر دواړه دي.

په داسې حال کې چې په ډیټابیس کې، صفر یو ارزښت دی. ارزښت Null ښیي چې هیڅ ارزښت شتون نلري. کله چې نول د ارزښت په توګه کارول کیږي، دا د حافظې ځای ندی.

سربیره پردې، د یو نول کرکټر پرته، یو تار به په مناسبه توګه پای ته ونه رسیږي، چې د ډیرو ستونزو لامل کیږي. Null کرکټر په مختلفو پروګرامینګ ژبو کې ډیری مختلفې کارونې لري.

پوښتنه دا ده چې تاسو به څنګه په C++ کې Null ولیکئ. ښه، که یو Null ثابت د عدد ډول ولري، نو بیا د یو ډول ارزښت ته بدلیدلی شي.

د مثال په توګه، دا کرکټر، "Null" په ساختماني پوښتنو ژبه (SQL) کې د ځانګړي مارکر په توګه کارول کیږي ترڅو دا په ګوته کړي چې د ډیټا ارزښت په ډیټابیس کې شتون نلري. یو اړونده ډیټابیس هغه وخت دی کله چې په یو ځانګړي کالم کې ارزښت نامعلوم یا ورک وي.

سربیره پردې، په C# کې،د پروګرام کولو ژبه، نول د "هیڅ شی" لپاره ولاړ دی. په دې ژبه کې، دا د ثابت صفر سره ورته نه دی.

په هرصورت، په C++ ژبه کې، Null کرکټر یو ځانګړی ساتل شوی پوائنټر ارزښت دی چې کوم معتبر ډیټا څیز ته اشاره نه کوي. همچنان ، په C++ ژبه کې ، Null افعال د پوائنټر متغیرونو ته د ارزښت ټاکلو لپاره یوازې یوه لاره ده.

د نول او صفر تر منځ توپیر

لکه څنګه چې نول د صفر ارزښت لري، خلک اکثرا په دې اړه مغشوش کیږي چې څنګه د نول او صفر ترمنځ توپیر وکړي.

په C++ کې Null یوازې یو میکرو دی چې د Null پوائنټر ثابت تعریف کوي او عموما د صفر ارزښت لري. په هرصورت، نول تاسو ته د پام وړ ارزښت درکوي چې دا متغیر هیڅ وزن نه لري.

په داسې حال کې چې صفر پخپله یو ارزښت دی، او دا به څنګه د جریان په ترتیب کې پاتې شي. په بل عبارت، صفر پخپله د شمیر ارزښت دی، پداسې حال کې چې Null معنی خالي ده.

تاسو کولی شئ د دې په اړه فکر وکړئ د یخچال لپاره ځانګړي ځای . که چیرې یخچال شتون ولري مګر هیڅ شی نلري نو ارزښت یې صفر دی. له بلې خوا، که چیرې د یخچال لپاره وقف شوی ځای په هیڅ ډول یخچال نلري، ارزښت یې ناپاک دی.

Nulptr په C++ کې څه معنی لري؟

د "نولپټر" کلیمه د Null پوائنټر ارزښت څرګندوي. تاسو به د Null پوائنټر ارزښت وکاروئ ترڅو وښیې چې د څیز لاسوند ، داخلي پوائنټر ، یا د اصلي پوینټر ډول یو شی ته اشاره نه کوي.

یوازې پوائنټر کولی شي د حافظې ځایونه وساتي، او ارزښتونه نشي کولی.

هم وګوره: "لیسه" بمقابله "لوی ښوونځی" (په ګرامر سره سم) - ټول توپیرونه

لومړی، موږ باید پوه شو چې پوائنټر څه شی دی. دا یو متغیر دی چې د حافظې موقعیت لري.

A Null pointer یو پوائنټر دی چې په قصدي ډول هیڅ شی ته اشاره نه کوي. که تاسو داسې پته نلرئ چې تاسو یې اشاره کونکي ته وټاکئ، تاسو کولی شئ Null وکاروئ. د نول ارزښت په غوښتنلیکونو کې د حافظې لیک او کریش څخه مخنیوی کوي چې پوائنټرونه لري.

سربیره پردې، د Nullptr د کتلو لپاره، تاسو کولی شئ د یو پوائنټر ارزښت د شرط په توګه وکاروئ ترڅو وګورئ چې آیا یو پوائنټر په C++ کې Null دی. کله چې په منطقي څرګندونو کې کارول کیږي، نول ټکي د غلط په توګه ارزول کیږي.

له دې امله، یو څوک کولی شي د if بیان حالت کې یو ورکړل شوی پوائنټر ځای په ځای کړي ترڅو وګوري چې ایا دا Null دی. په لنډه توګه، Nullptr د پوائنټر ډوله کلیدي کلمه ده چې صفر د پتې په توګه استازیتوب کوي.

یوه عامه پوښتنه دا ده چې ولې Nullptr ته اړتیا لیدل کیږي کله چې دمخه یو Null کرکټر شتون ولري. دا ځکه چې، په C++ 11 کې، Nullptr د نول پوائنټر ثابت دی، او دا اړینه ده ځکه چې دا د ډول خوندیتوب ښه کوي.

آیا Null او Nullptr یو شان دي؟

نه. دوی نه دي. د دوی د توپیرونو د پوهیدو لپاره لاندې جدول وګورئ.

Nullptr Null
کلیمه د صفر استازیتوب کوي د صفر ارزښت
صفر د پتې په توګه استازیتوب کوي د ارزښت په توګه استازیتوب کوي انټیجر
نوی او وړاندیز شوی فعالیت زوړ اوتخریب شوی فنکشن
د ریښتیني پوائنټر ډول د عدد لپاره د عرف په توګه پلي شوی

مستقل صفر

د کلیمو یادونه وکړئ ترڅو تاسو مغشوش نه شئ.

نول یو "ښکاره ثابته" ګڼل کیږي چې په حقیقت کې یو انټیجر دی او د یو اړخیز تبادلې له امله یو پوائنټر ته ټاکل کیدی شي.

په داسې حال کې چې Nullptr یوه کلیدي کلمه ده چې د ځان تعریف شوي ډول ارزښت څرګندوي، او دا کولی شي په پوینټر بدل کړي مګر په عددونو کې نه. Nullptr عموما یو Null پوائنټر دی او تل به یو وي. که تاسو دا یو عدد ته د ټاکلو هڅه وکړئ، دا به د غلطیو لامل شي.

که تاسو بیا هم دا نه ترلاسه کوئ، دا ویډیو وګورئ.

هم وګوره: د امیندوارۍ معده څنګه د غوړ معدې څخه توپیر لري؟ (پرتله) - ټول توپیرونه

دا ویډیو په تفصیل سره تشریح کوي چې څه او کله تاسو باید د سټیمر سره Null یا nullptr-code وکاروئ.

ایا تاسو کولی شئ د Null پرځای Nullptr وکاروئ؟

هو . په داسې حال کې چې دوی یو شان نه دي، تاسو ته د Null پر ځای Nullptr کارولو لپاره یوه لاره شتون لري.

سربیره پردې، Nullptr په C++ کې یوه نوې کلیمه ده چې د بدیل لپاره کیدی شي. نول. Nullptr د خوندي ډول پوائنټر ارزښت ورکوي چې د خالي پوائنټر استازیتوب کوي.

پداسې حال کې چې ځینې د Null کارولو څخه ډډه کوي ځکه چې دا مناسب نه دی ، دا نن ورځ لږ عام دی ځکه چې ډیری کوډران د Null پرځای Nullptr کارولو وړاندیز تعقیبوي.

سربیره پردې، تاسو کولی شئ د Nullptr کلیدي کلمه وکاروئ ترڅو دا ازموینه وکړئ چې ایا د حوالې کارولو دمخه د پوائنټر یا هینډل حواله Null ده.

ایا تاسو کولی شئ یو Nullptr ته درناوی وکړئ؟

تاسو کولی شئ د nullptr درناوی وکړئ. که تاسو دا کار کوئ، تاسو کولی شئ ارزښت ته په هغه پته کې لاسرسی ومومئ چې اشاره کوونکی ورته اشاره کوي.

د کمپیوټر په ژبو کې، dereferencing د حافظې ځای کې موجود ډیټا ته د لاسرسي یا سمبالولو لپاره کارول کیږي چې د پوائنټر لخوا په ګوته شوي.

په هرصورت، تاسو دا په C ژبه نه شئ کولی . یو نول پوائنټر یو معنی لرونکي څیز ته اشاره نه کوي ، د بې ځایه کولو هڅه ، کوم چې ذخیره شوي معلوماتو ته لاسرسی لري. یو نول پوائنټر معمولا د چلولو وخت تېروتنې یا سمدستي برنامه حادثې لامل کیږي.

د کمپیوټر پروګرامینګ کې، یو ډیریفرنس آپریټر هغه څه دی چې د پوینټر متغیر باندې کار کوي. دا بیرته راګرځي په حافظه کې د موقعیت ارزښت د متغیر ارزښت لخوا په ګوته شوی. په C++ پروګرامینګ ژبه کې، د کار وړ درناوی د ستوري (*) سره سمبول شوی.

وروستی فکرونه

یو څوک کولی شي Null د میکرو په توګه تعریف کړي چې صفر پوائنټر ته رسیږي، پدې معنی چې د دې متغیر لپاره هیڅ پته نشته. نول په C ژبه کې یو زوړ میکرو دی چې C++ ته لیږدول شوی.

په عین حال کې، Nullptr یوه نوې نسخه ده چې په C++11 کې معرفي شوې او د Null لپاره د بدیل په توګه ده.

له همدې امله، نن ورځ، دا سپارښتنه کیږي چې تاسو په هغه ځایونو کې د Nullptr کارول پیل کړئ چیرې چې تاسو به په تیرو وختونو کې یا حتی د دې لیکنې په څیر د Null پرځای کاروئ.

    د دې مقالې د لنډې نسخې لیدو لپاره دلته کلیک وکړئ.

    Mary Davis

    مریم ډیوس یو لیکوال ، د مینځپانګې جوړونکی ، او لیواله څیړونکی دی چې په بیلابیلو موضوعاتو کې د پرتله کولو تحلیل کې تخصص لري. په ژورنالیزم کې د لیسانس او ​​په ساحه کې د پنځو کلونو تجربې سره، مریم خپلو لوستونکو ته د بې طرفه او مستقیم معلوماتو وړاندې کولو لیوالتیا لري. د لیکلو سره د هغې مینه هغه وخت پیل شوه کله چې هغه ځوانه وه او د لیکلو په برخه کې د هغې د بریالۍ مسلک تر شا یو محرک ځواک و. د پوهیدلو اسانه او ښکیل شکل کې د څیړنې او موندنو وړاندې کولو لپاره د مریم وړتیا هغه د ټولې نړۍ لوستونکو ته خوښ کړې. کله چې هغه نه لیکي، مریم د کورنۍ او ملګرو سره د سفر، لوستلو او مصرف کولو څخه خوند اخلي.