C ++ دىكى Null بىلەن Nullptr نىڭ قانداق پەرقى بار؟ (تەپسىلى) - بارلىق پەرقلەر

 C ++ دىكى Null بىلەن Nullptr نىڭ قانداق پەرقى بار؟ (تەپسىلى) - بارلىق پەرقلەر

Mary Davis

«Nullptr» نۆلنى ئادرېس قىلىپ تەسۋىرلەيدىغان ئاچقۇچلۇق سۆز دەپ قارىلىدۇ ، ھالبۇكى «Null» بولسا نۆلنىڭ پۈتۈن سان.

ئەگەر سىز پروگراممېر بولسىڭىز ، كومپيۇتېر تىلىنى كودنى تېخىمۇ ياخشى چۈشىنىشنىڭ قانچىلىك مۇھىملىقىنى بىلىشىڭىز مۇمكىن. ئەمما بەزى ۋاقىتلاردا ، ئۇ سەل گاڭگىراپ قېلىشى مۇمكىن ، سىز بەلكىم ئىككى ئىش ئارىلىشىپ كېتىشىڭىز مۇمكىن.

C ++ تىلىدىكى Null ۋە Nullptr غا ئوخشاش. سىزگە بۇ ئىككى ئاتالغۇنىڭ مەنىسى ۋە ئۇلارنىڭ پەرقى ۋە ئىشلىتىلىشىنى چۈشىنىشىڭىزگە ياردەم بېرىدىغان ئىقتىدارلىرىنى سۆزلەپ بېرەي.

دەرھال شۇڭغۇپ باقايلى!

كومپيۇتېر تىلى دېگەن نېمە؟

كومپيۇتېر تىللىرىنى پروگرامما ۋە كونكرېت پروگراممىلارنى يېزىشتا ئىشلىتىلىدىغان كود ياكى گرامماتىكىسى دەپ ئېنىقلىما بېرىشكە بولىدۇ.

قاراڭ: SSD ساقلاش بىلەن eMMC (32GB eMMC ياخشىمۇ؟) - بارلىق پەرقلەر

ئاساسەن ، ئۇ كومپيۇتېر بىلەن ئالاقە قىلىشتا ئىشلىتىلىدىغان رەسمىي تىل. ئوخشاش ئۇسۇلدا ، ئوخشىمىغان دۆلەتلەردە كىشىلەرنىڭ پىكىر ئالماشتۇرۇشىغا ياردەم بېرىدىغان ئوخشىمىغان تىللار بار ، كومپيۇتېرلارمۇ شۇنداق.

بۇلار كومپيۇتېرنىڭ پروگرامما تۈزۈشىنى چۈشىنىش ۋە ئۇلار ئۈستىدە ئىشلەش ئۈچۈن كەشىپ قىلىنغان. ئادەتتە ، كومپيۇتېر تىلىنى ئۈچ چوڭ تۈرگە ئايرىشقا بولىدۇ:

  • قۇراشتۇرۇش تىلى

    بۇ مىكرو بىر تەرەپ قىلغۇچقا ئىشلىتىلىدىغان تۆۋەن دەرىجىلىك تىل دەپ قارىلىدۇ. ۋە باشقا كۆپ خىل پروگرامما ئۈسكۈنىلىرى. ئۇ ئىككىنچى ئەۋلاد تىل. ئۇ مەشغۇلات سىستېمىسى يېزىش ۋە ئوخشىمىغان ئۈستەل يۈزى پروگراممىلىرىنى يېزىش بىلەن داڭلىق.

  • ماشىنا تىلى

    بۇ ئانا تىل بىرىنچى ئەۋلاد تىل.ئۇ ماشىنا كودى ھەتتا ئوبيېكت كودى دەپ ئاتىلىدۇ ، بىر يۈرۈش ئىككىلىك رەقەم 0 ۋە 1. بۇ رەقەملەرنى كومپيۇتېر سىستېمىسى چۈشىنىدۇ ۋە ئوقۇيدۇ.

  • يۇقىرى سەۋىيىلىك تىل

    بۇ كونا تىللاردىكى يۆتكىلىشچانلىقى سەۋەبىدىن بارلىققا كەلگەن. بۇ كود بۇ ماشىنىنىڭ بىر ماشىنىغا يېزىلغانلىقىدىن دېرەك بەرمەيدۇ. بۇ تىلنى چۈشىنىش ئاسان ، شۇنداقلا ئابونتلارغا ناھايىتى قولايلىق.

كومپيۇتېرنىڭ چۈشىنىدىغان قىسمى «ئىككىلىك» دەپ ئاتىلىدۇ. يەنە بىر جەھەتتىن ، پروگرامما تىلىنىڭ ئىككىلىك نۇسخىسىغا تەرجىمە قىلىنىشى «تۈزۈش» دەپ ئاتالغان.

قىسقىسى ، پروگرامما تىلى كىشىلەرنىڭ كومپيۇتېرغا يوليورۇق بېرىشى ۋە ئۇلارنى ئىجرا قىلىشىغا يول قويىدۇ. ھەر بىر كومپيۇتېر تىلىنىڭ C تىلىدىن بوغما يىلانغىچە بولغان ئالاھىدە ئالاھىدىلىكلىرى بار.

بۇ تىللار كومپيۇتېرلارنىڭ چوڭ ۋە مۇرەككەپ سانلىق مەلۇماتلارنى تېخىمۇ ئۈنۈملۈك بىر تەرەپ قىلىشىنى ئاسان ۋە تېز قىلىدۇ. ھازىر دۇنيادا بىر قانچە پروگرامما تىلى بار. بۇلارنىڭ بىر قىسمى Java ، Python ، HTML ، C ، C ++ ۋە SQL قاتارلىقلارنى ئۆز ئىچىگە ئالىدۇ.

C ++ تىلى نېمە؟

C ++ تىلى دۇنيادىكى ئەڭ ئالقىشقا ئېرىشكەن پروگرامما تىللىرىنىڭ بىرى. سىز بۇ تىلنى بۈگۈنكى دۇنيادىكى مەشغۇلات سىستېمىسى ، گرافىكلىق ئىشلەتكۈچى ئارايۈزى ۋە قىستۇرما سىستېمىلاردىن تاپالايسىز.

قاراڭ: رەنىلىك vs ئىجارە ھەققى (چۈشەندۈرۈلگەن) - بارلىق پەرقلەر

ئۇ يۇقىرى ئىقتىدارلىق قوللىنىشچان پروگراممىلارنى قۇرۇشتا ئىشلىتىلىدىغان سۇپا ھالقىغان تىل. C ++ تىلى قۇرۇلدىC تىلىنى ئىجاد قىلىشقا مەسئۇل بولغان Bjarne Stroustrup تەرىپىدىن يېزىلغان. ئىسمىدەك ئېنىق ، بۇ تىل C تىلىنىڭ كېڭىيىشى.

ئۇ پروگراممېرلارنىڭ سىستېما مەنبەسى ۋە ئىچكى ساقلىغۇچنى يۇقىرى كونترول قىلالايدۇ. ئۇنى يېڭىلاندى دەپ ئويلىشىڭىز مۇمكىن. قانداقلا بولمىسۇن ، بۇ تىل 2011 ، 2014 ۋە 2017-يىللىرى ئۈچ قېتىم يېڭىلاندى. ئۇ C ++ 11 ، C ++ 14 دىن C ++ 17 گە چىقتى.

بۈگۈنگە قەدەر ، C ++ تىلى كۆرۈنەرلىك ئېلىپ يۈرۈشكە ئەپلىك بولغاچقا ، ئىجادكارلارنىڭ ئوخشىمىغان مەشغۇلات سىستېمىسى ياكى سۇپىلاردا ئۈنۈملۈك ئىجرا قىلالايدىغان پروگراممىلارنى تەرەققىي قىلدۇرالايدۇ.

نېمىشقا نۇرغۇن كىشىلەر C ++ نى ئىشلىتىدۇ؟

بۇ تىل كەڭ تارقالغان چۈنكى ئۇ ئوبيېكتقا يۈزلەنگەن پروگرامما تىلى بولۇپ ، پروگراممىلارنى ئېنىق قۇرۇلما بىلەن تەمىنلەيدۇ ۋە كودنى قايتا ئىشلىتىشكە رۇخسەت قىلىش ئارقىلىق تەرەققىيات تەننەرخىنى تۆۋەنلىتىدۇ.

ئىقتىدارى يۇقىرى بولغاچقا ، بۇ تىل ئويۇن ، ئۈستەل يۈزى ئەپلىرى ، توركۆرگۈچ ۋە مەشغۇلات سىستېمىلىرىنى تەرەققىي قىلدۇرۇشقا ئىشلىتىلىدۇ. بۇ تىلنىڭ يەنە بىر ئالاھىدىلىكى ئېلىپ يۈرۈشكە ئەپلىك بولۇپ ، بىر نەچچە سۇپاغا ماسلىشالايدىغان قوللىنىشچان پروگراممىلارنى قۇرالايدۇ.

گەرچە ئۆگىنىش ئەڭ قىيىن تىللارنىڭ بىرى ئىكەنلىكى بىلىنسىمۇ ، ئەمما ئۇنىڭ ئەۋزەللىكى بار. كۆپ ئۈلگىلىك تىل ۋە ئىقتىدارلىرى تېخىمۇ ئىلغار گرامماتىكىسى سەۋەبىدىن باشقىلارغا قارىغاندا چۈشىنىش تېخىمۇ قىيىن.

ئەگەر سىز C ++ تىلىنى ئۆگەنەلەيدىغان بولسىڭىز ، ئۆگىنىش تېخىمۇ لاياقەتلىك بولىدۇبۇنىڭدىن كېيىنكى باشقا پروگرامما تىللىرى ، مەسىلەن Java ۋە Python.

قىسقىسى ، C ++ ئومۇمىي مەقسەت ، ئوتتۇرا دەرىجىلىك پروگرامما تىلى بولۇپ ، ئۇنى «C ئۇسلۇبى» دا كودلاشتۇرغىلى بولىدۇ. بەزى ئەھۋاللاردا ، سىز ھەر ئىككى خىل شەكىلدە كودلاشتۇرالايدۇ ، C ++ ئارىلاشما تىلنىڭ مىسالى بولىدۇ.

C ۋە C ++ تىللىرىدا Null خاراكتېرى ، Null كۆرسەتكۈچى ۋە Null جۈملىسى بار (يېرىم چېكىت (؛) بىلەن ئىپادىلىنىدۇ). C ++?

نۆل نۆلنىڭ قىممىتىنى ساقلايدىغان ئىچكى تۇراقلىق دەپ قارىلىدۇ. ئۇ كومپيۇتېر پروگرامما تۈزۈشتىكى دائىملىق ھەم كۆرسەتكۈچ.

سانداندا بولسا نۆل قىممەت. Null قىممىتى ھېچقانداق قىممەتنىڭ يوقلىقىنى كۆرسىتىدۇ. Null قىممەت سۈپىتىدە ئىشلىتىلگەندە ، ئۇ ئەستە ساقلاش ئورنى ئەمەس.

ئۇنىڭ ئۈستىگە ، Null ھەرپ بولمىسا ، بىر قۇر مۇۋاپىق ئاخىرلاشماي ، نۇرغۇن مەسىلىلەرنى كەلتۈرۈپ چىقىرىدۇ. Null ھەرپنىڭ ئوخشىمىغان پروگرامما تىللىرىدا نۇرغۇن ئوخشىمىغان ئىشلىتىلىشى بار.

مەسىلە سىز Null نى C ++ دا قانداق يازىسىز. ياخشى ، ئەگەر Null تۇراقلىق ساننىڭ پۈتۈن سان تىپى بولسا ، ئاندىن ئۇنى بىر خىل قىممەتكە ئايلاندۇرغىلى بولىدۇ.

مەسىلەن ، «Null» بۇ ھەرپ «قۇرۇلما سوئال تىلى» (SQL) دا ئالاھىدە بەلگە سۈپىتىدە ئىشلىتىلىدۇ ، بۇ سانداندا سانلىق مەلۇماتنىڭ مەۋجۇت ئەمەسلىكىنى كۆرسىتىدۇ. مۇناسىۋەتلىك ساندان مەلۇم بىر ئىستوندىكى قىممەت نامەلۇم ياكى يوقاپ كەتكەندە.

ئۇنىڭ ئۈستىگە ، C # ،پروگرامما تىلى ، Null «ئوبيېكت يوق» دېگەن مەنىنى بىلدۈرىدۇ. بۇ تىلدا ، ئۇ دائىملىق نۆل بىلەن ئوخشاش بولمايدۇ. ئۇنىڭدىن باشقا ، C ++ تىلىدا ، Null ئىقتىدارى پەقەت كۆرسەتكۈچ ئۆزگەرگۈچى مىقدارغا قىممەت تەقسىملەشنىڭ بىر خىل ئۇسۇلى. <2

C ++ دىكى Null پەقەت Null كۆرسەتكۈچ تۇراقلىقىنى بەلگىلەيدىغان ماكرو بولۇپ ، ئادەتتە نۆل قىممەت بولىدۇ. قانداقلا بولمىسۇن ، Null سىزگە ئۆزگىرىشچان مىقدارنىڭ ئېغىرلىقىنى بىلدۈرمەيدىغان مۇھىم قىممەت بېرىدۇ.

ھالبۇكى ، نۆلنىڭ ئۆزى بىر قىممەت ، ئۇ ئاقما تەرتىپ بويىچە ساقلىنىدۇ. باشقىچە ئېيتقاندا ، نۆل ساننىڭ ئۆزى ، Null بولسا قۇرۇق دېگەنلىك.

ئۇنى توڭلاتقۇغا بېغىشلانغان مەلۇم بوشلۇق دەپ ئويلىسىڭىز بولىدۇ. ئەگەر توڭلاتقۇ بولسا ئەمما ئۇنىڭدا ھېچقانداق نەرسە بولمىسا ئۇنداقتا قىممىتى نۆل بولىدۇ. يەنە بىر جەھەتتىن ، ئەگەر توڭلاتقۇغا ئاجرىتىلغان بوشلۇقتا توڭلاتقۇ بولمىسا ، قىممىتى Null بولىدۇ.

Nullptr C ++ دە نېمىدىن دېرەك بېرىدۇ؟

«Nullptr» ئاچقۇچلۇق سۆز Null كۆرسەتكۈچ قىممىتىنى كۆرسىتىدۇ. سىز Null كۆرسەتكۈچ قىممىتى ئارقىلىق ئوبيېكت تۇتقۇچى ، ئىچكى كۆرسەتكۈچ ياكى يەرلىك كۆرسەتكۈچ تىپىنىڭ ئوبيېكتنى كۆرسەتمەيدىغانلىقىنى كۆرسىتىدۇ.

پەقەت كۆرسەتكۈچلا ئىچكى ساقلىغۇچنى ساقلىيالايدۇ ، قىممەت ساقلىيالمايدۇ.

بىرىنچىدىن ، كۆرسەتكۈچنىڭ نېمىلىكىنى چۈشىنىشىمىز كېرەك. ئۇ ئىچكى ساقلىغۇچنى ساقلايدىغان ئۆزگەرگۈچى مىقدار. ئەگەر كۆرسەتكۈچكە تەقسىملىيەلەيدىغان ئادرېسىڭىز بولمىسا ، Null نى ئىشلەتسىڭىز بولىدۇ. Null قىممىتى ئىچكى ساقلىغۇچ ئېقىپ كېتىش ۋە كۆرسەتكۈچ بار پروگراممىلاردا سوقۇلۇشتىن ساقلىنىدۇ.

ئۇندىن باشقا ، Nullptr نى تەكشۈرۈش ئۈچۈن ، كۆرسەتكۈچ قىممىتىنى شەرت قىلىپ C ++ دىكى كۆرسەتكۈچنىڭ Null ياكى ئەمەسلىكىنى تەكشۈرەلەيسىز. لوگىكىلىق ئىپادىلەشتە ئىشلىتىلگەندە ، Null كۆرسەتكۈچلىرى يالغان دەپ باھالىنىدۇ.

شۇڭلاشقا ، مەلۇم بىر كۆرسەتكۈچنى if جۈملىسىنىڭ شەرتىگە قويۇپ ، ئۇنىڭ Null ياكى ئەمەسلىكىنى تەكشۈرگىلى بولىدۇ. قىسقىسى ، Nullptr نۆل نى ئادرېس سۈپىتىدە ئىپادىلەيدىغان كۆرسەتكۈچ تىپىدىكى ئاچقۇچلۇق سۆز. چۈنكى ، C ++ 11 دە ، Nullptr Null كۆرسەتكۈچ تۇراقلىق بولۇپ ، تىپ بىخەتەرلىكىنى ياخشىلايدىغانلىقى ئۈچۈن تەلەپ قىلىنىدۇ.

Null بىلەن Nullptr ئوخشاشمۇ؟

ياق. ئۇلار ئەمەس. ئالدى بىلەن ئۇلارنىڭ پەرقىنى بىلىش ئۈچۈن تۆۋەندىكى جەدۋەلنى كۆرۈڭ.

Nullptr 20>
نۆلگە ۋەكىللىك قىلىدىغان ئاچقۇچلۇق سۆز نۆلنىڭ قىممىتى
نۆلنى ئادرېس سۈپىتىدە كۆرسىتىدۇ قىممەتنى an پۈتۈن سان
يېڭى ۋە تەۋسىيە قىلىنغان ئىقتىدار كونا ۋەۋاقتى ئۆتكەن ئىقتىدار
ھەقىقىي كۆرسەتكۈچ تىپى پۈتۈن سان

تۇراقلىق نۆل

ئاچقۇچلۇق سۆزلەرگە دىققەت قىلىڭ ، بۇنداق بولغاندا گاڭگىراپ قالماسلىقىڭىز كېرەك.

Nullptr بولسا ئۆزى بەلگىلىگەن تىپنىڭ قىممىتىنى ئىپادىلەيدىغان ئاچقۇچلۇق سۆز ، ئۇ كۆرسەتكۈچكە ئايلاندۇرالايدۇ ، ئەمما پۈتۈن سانغا ئايلانمايدۇ. Nullptr ئادەتتە Null كۆرسەتكۈچى بولۇپ ، ھەمىشە بىر بولىدۇ. ئۇنى پۈتۈن سانغا تەقسىملەپ سىناپ باقسىڭىز ، خاتالىق كېلىپ چىقىدۇ.

ئەگەر يەنىلا ئېرىشەلمىسىڭىز ، بۇ فىلىمنى كۆرۈڭ.

بۇ سىنئالغۇ ئېقىمى بىلەن بىللە Null ياكى nullptr - كودنى نېمە ۋە قاچان ئىشلىتىش كېرەكلىكىنى ئەتراپلىق چۈشەندۈرۈپ بېرىدۇ.

Nullptr نى Null نىڭ ئورنىغا ئىشلىتەمسىز؟

ھەئە . ئۇلار ئوخشاش بولمىسىمۇ ، Nullptr نى Null نىڭ ئورنىدا ئىشلىتىشنىڭ بىر ئۇسۇلى بار.

بۇنىڭدىن باشقا ، Nullptr C ++ دىكى يېڭى ئاچقۇچلۇق سۆز بولۇپ ، ئۇنىڭ ئورنىنى ئالالايدۇ. Null. Nullptr قۇرۇق كۆرسەتكۈچكە ۋەكىللىك قىلىدىغان بىخەتەر تىپتىكى كۆرسەتكۈچ قىممىتى بېرىدۇ.

بەزىلەر ماس كەلمەيدىغانلىقى ئۈچۈن Null نى ئىشلىتىشتىن ئۆزىنى قاچۇرسىمۇ ، ئەمما بۈگۈنكى كۈندە بۇ بەك ئاز ئۇچرايدۇ ، چۈنكى نۇرغۇن كود يەشكۈچلەر Nullptr نى Null نىڭ ئورنىغا ئىشلىتىش تەكلىپىنى ئىجرا قىلماقتا.

بۇنىڭدىن باشقا ، سىز Nullptr ئاچقۇچلۇق سۆزنى ئىشلىتىپ كۆرسەتكۈچ ياكى تۇتقۇچ پايدىلىنىشنىڭ Null ياكى ئەمەسلىكىنى سىناپ باقسىڭىز بولىدۇ.

سىز بىر Nullptr نى چۈشۈرەلەمسىز؟

سىز nullptr نى ھۆرمەتلىسىڭىز بولىدۇ. ئەگەر شۇنداق قىلسىڭىز ، كۆرسەتكۈچ كۆرسەتكەن ئادرېستىكى قىممەتكە ئېرىشەلەيسىز.

كومپيۇتېر تىلىدا كۆرسەتمە ئارقىلىق كۆرسىتىلگەن ئىچكى ساقلىغۇچ ئورنىدىكى سانلىق مەلۇماتلارنى زىيارەت قىلىش ياكى كونترول قىلىشقا ئىشلىتىلىدۇ.

قانداقلا بولمىسۇن ، بۇنى C تىلىدا قىلالمايسىز . Null كۆرسەتكۈچ ئەھمىيەتلىك ئوبيېكتنى كۆرسەتمەيدۇ ، ئۇ ساقلانغان سانلىق مەلۇماتلارنى زىيارەت قىلىدۇ. Null كۆرسەتكۈچى ئادەتتە ئىجرا قىلىش خاتالىقى ياكى پروگراممىنىڭ دەرھال چۈشۈپ كېتىشىنى كەلتۈرۈپ چىقىرىدۇ.

كومپيۇتېر پروگرامما تۈزۈشتە ، كۆرسەتكۈچ ئۆزگەرگۈچى مىقداردا مەشغۇلات قىلىدىغان مەشغۇلات. ئۇ ئۆزگەرگۈچى مىقدارنىڭ قىممىتى كۆرسىتىلگەن ئىچكى ساقلىغۇچتىكى ئورۇن قىممىتىنى قايتۇرىدۇ. C ++ پروگرامما تىلىدا مەشغۇلات قىلىنغان ھۆرمەت يۇلتۇز بەلگىسى (*) بىلەن سىمۋول قىلىنغان.

ئاخىرقى پىكىرلەر

بىر نۆلنى نۆل كۆرسەتكۈچكە بېرىدىغان ماكرو دەپ ئېنىقلىما بېرەلەيدۇ ، يەنى بۇ ئۆزگەرگۈچى مىقدارنىڭ ئادرېسى يوق. Null بولسا C ++ دىكى كونا ماكرو.

شۇنىڭ بىلەن بىر ۋاقىتتا ، Nullptr بولسا C ++ 11 دە تونۇشتۇرۇلغان يېڭى نەشرى بولۇپ ، Null نىڭ ئورنىنى ئېلىشنى مەقسەت قىلىدۇ.

شۇڭلاشقا ، بۈگۈن ، Nullptr نى ئىلگىرى Null نى ئىشلىتىدىغان ئورۇنلاردا ئىشلىتىشكە باشلىشىڭىز تەۋسىيە قىلىنىدۇ.

بۇ يەرنى چېكىپ بۇ ماقالىنىڭ قىسقارتىلغان نۇسخىسىنى كۆرۈڭ.

Mary Davis

مارى داۋىس ھەر خىل تېمىدىكى سېلىشتۇرۇش ئانالىزى بىلەن شۇغۇللىنىدىغان يازغۇچى ، مەزمۇن ئىجادچىسى ۋە قىزغىن تەتقىقاتچى. ئاخباراتچىلىق ئۇنۋانى ۋە بۇ ساھەدە بەش يىلدىن ئارتۇق تەجرىبىسى بار مەريەمنىڭ ئوقۇرمەنلىرىگە تەرەپسىز ۋە بىۋاسىتە ئۇچۇرلارنى يەتكۈزۈش قىزغىنلىقى بار. ئۇنىڭ يېزىقچىلىققا بولغان مۇھەببىتى ياش ۋاقتىدىن باشلانغان بولۇپ ، ئۇنىڭ يېزىقچىلىقتىكى مۇۋەپپەقىيەت قازىنىشىدىكى ھەرىكەتلەندۈرگۈچ كۈچ بولۇپ كەلگەن. مەريەمنىڭ تەتقىقات ۋە بايقاشلارنى ئاسان چۈشىنىشلىك ۋە جەلپ قىلارلىق شەكىلدە ئوتتۇرىغا قويۇش ئىقتىدارى ئۇنى دۇنيانىڭ ھەرقايسى جايلىرىدىكى ئوقۇرمەنلەرنىڭ ياقتۇرۇشىغا ئېرىشتى. ئۇ يازمىغان ۋاقىتتا ، مەريەم ساياھەت قىلىش ، ئوقۇش ۋە ئائىلىسىدىكىلەر ۋە دوستلىرى بىلەن بىللە ۋاقىت ئۆتكۈزۈشكە ئامراق.