C++ da Null va Nullptr o'rtasidagi farq nima? (Batafsil) - Barcha farqlar

 C++ da Null va Nullptr o'rtasidagi farq nima? (Batafsil) - Barcha farqlar

Mary Davis

“Nullptr” nolni manzil sifatida ko'rsatadigan kalit so'z hisoblanadi, “Null” esa butun son sifatida Nol qiymatidir.

Agar siz dasturchi bo'lsangiz, kodlash uchun kompyuter tillarini tushunish qanchalik muhimligini bilishingiz mumkin. Ammo ba'zida bu biroz chalkash bo'lishi mumkin va siz ikki narsa o'rtasida aralashib ketishingiz mumkin.

C++ tilidagi Null va Nullptr uchun ham xuddi shunday holat. Sizga bu ikki atama nimani anglatishini va ularning farqi va ishlatilishini tushunishingizga yordam berish uchun ularning vazifalarini aytib beraman.

Keling, darhol sho'ng'inaylik!

Kompyuter tillari nima?

Kompyuter tillari dasturlar va maxsus ilovalarni yozish uchun ishlatiladigan kod yoki sintaksis sifatida belgilanishi mumkin.

Asosan, bu kompyuterlar bilan muloqot qilish uchun ishlatiladigan rasmiy til. Xuddi shu tarzda, turli mamlakatlarda odamlarga fikr almashishda yordam beradigan turli tillar mavjud, kompyuterlar ham shunday.

Bular kompyuterning dasturlashni tushunish va ular ustida ishlash uchun ixtiro qilingan. Umuman olganda, kompyuter tilini uchta asosiy toifaga ajratish mumkin:

  • Assembly tili

    Bu mikroprotsessorlar uchun ishlatiladigan past darajadagi til hisoblanadi. va boshqa ko'plab dasturlashtiriladigan qurilmalar. Bu ikkinchi avlod tili. U operatsion tizimni yozish va turli ish stoli ilovalarini yozish bilan mashhur.

  • Mashina tili

    Bu ona tili birinchi avlod tilidir.U 0 va 1 ikkilik raqamlar to'plamiga ega bo'lgan mashina kodi yoki hatto ob'ekt kodi deb ataladi. Bu raqamlar ularni tezda sharhlaydigan kompyuter tizimi tomonidan tushuniladi va o'qiladi.

  • Yuqori darajali til

    Bu eski tillardagi portativlik muammolari tufayli yaratilgan. Kod o'tkaza olmadi, bu kod bitta mashinada yozilgan. Ushbu tilni tushunish oson va foydalanuvchi uchun juda qulay.

Tilning kompyuter tushunadigan qismi "ikkilik" deb nomlanadi. Boshqa tomondan, dasturlash tilini ikkilik tilga tarjima qilish "kompilyatsiya" deb nomlanadi.

Xulosa qilib aytganda, dasturlash tillari odamlarga kompyuterlarga ko'rsatmalar berish, ularni o'qish va bajarish imkonini beradi. Har bir kompyuter tili o'ziga xos xususiyatlarga ega, C tilidan pythongacha.

Ushbu tillar kompyuterlarga katta va murakkab ma'lumotlarni yanada samaraliroq qayta ishlashni osonlashtiradi va tezlashtiradi. Hozirgi kunda dunyoda bir nechta dasturlash tillari mavjud. Ulardan bir nechtasi Java, Python, HTML, C, C++ va SQL.

C++ tili nima?

C++ tili dunyodagi eng mashhur dasturlash tillaridan biridir. Siz ushbu tilni operatsion tizimlarda, foydalanuvchi grafik interfeyslarida va zamonaviy dunyoda o'rnatilgan tizimlarda topasiz.

Bu yuqori unumli ilovalarni yaratish uchun ishlatiladigan platformalararo tildir. C++ tili yaratildiBjarne Stroustrup tomonidan, u ham C tilini yaratish uchun mas'uldir. Nomi kabi ravshanki, bu til C tilining kengaytmasi hisoblanadi.

Bu dasturchilarga tizim resurslari va xotirani yuqori darajada boshqarish imkonini beradi. Siz u allaqachon yangilangan deb o'ylashingiz mumkin. Biroq, til 2011, 2014 va 2017 yillarda uch marta yangilandi. U C++11, C++14, C++17 ga o'tdi.

Shu kungacha C++ tili o'zining sezilarli portativligi tufayli juda qadrlanadi, bu esa yaratuvchilarga turli operatsion tizimlar yoki platformalarda samarali ishlashi mumkin bo'lgan dasturlarni ishlab chiqish imkonini beradi.

Nima uchun ko'pchilik C++ dan foydalanadi?

Ushbu til keng tarqalgan chunki u ob'ektga yo'naltirilgan dasturlash tili bo'lib, u dasturlarning aniq tuzilishini ta'minlaydi va kodni qayta ishlatishga ruxsat berish orqali ishlab chiqish xarajatlarini kamaytirishga yordam beradi.

Uning yuqori unumdorligi tufayli bu til o'yinlar, ish stoli ilovalari, brauzerlar va operatsion tizimlarni ishlab chiqish uchun ishlatiladi. Ushbu tilning yana bir xususiyati shundaki, u koʻchma va bir nechta platformalarga moslasha oladigan ilovalar yaratish imkonini beradi.

Shuningdek qarang: Sibir, Agouti, Seppala VS Alaskan Huskies - Barcha farqlar

O'rganish eng qiyin tillardan biri ekanligi ma'lum bo'lsa-da, uning afzalliklari bor. Ko'p paradigma tili va rivojlangan sintaksisi tufayli uni tushunish boshqalarga qaraganda qiyinroq.

Agar siz C++ tilini o'rgana olsangiz, o'rganishingiz ko'proq bo'ladi.Java va Python kabi bundan keyin boshqa dasturlash tillari.

Xulosa qilib aytganda, C++ umumiy maqsadli, oʻrta darajadagi dasturlash tili boʻlib, uni “C uslubida” kodlash imkonini beradi. Baʼzi hollarda siz har ikkala formatda kodlashni amalga oshirishi mumkin, bu esa C++ ni gibrid tilning namunasiga aylantiradi .

C va C++ tillarida Null belgisi, Null ko'rsatkichi va Null operatori (nuqtali vergul (;) bilan ko'rsatilgan).

Nul nima? C++?

Null nol qiymatini saqlaydigan o'rnatilgan konstanta hisoblanadi. Bu kompyuter dasturlashda ham doimiy, ham ko'rsatgich.

Ma'lumotlar bazasida nol qiymat hisoblanadi. Null qiymati hech qanday qiymat yo'qligini bildiradi. Null qiymat sifatida ishlatilsa, bu xotira joylashuvi emas.

Bundan tashqari, Null belgisi bo'lmasa, satr to'g'ri tugatolmaydi va bu ko'plab muammolarga olib keladi. Null belgisi turli dasturlash tillarida juda ko'p turli xil qo'llanishlarga ega.

Savol - C++ da Nullni qanday yozishingiz mumkin. Xo'sh, agar Null doimiysi butun son turiga ega bo'lsa, uni sort qiymatiga aylantirish mumkin.

Masalan, ushbu belgi, "Null" Strukturaviy so'rovlar tilida (SQL) ma'lumotlar bazasida ma'lumotlar qiymati mavjud emasligini ko'rsatish uchun maxsus marker sifatida ishlatiladi. Relyatsion ma'lumotlar bazasi - bu ma'lum bir ustundagi qiymat noma'lum yoki yo'qolganda.

Bundan tashqari, C# da,Null dasturlash tili bo'lgan "ob'ekt yo'q" degan ma'noni anglatadi. Bu tilda u doimiy nolga oʻxshamaydi.

Biroq C++ tilida Null belgisi hech qanday joriy maʼlumotlar obyektiga ishora qilmaydigan noyob zahiralangan koʻrsatkich qiymati hisoblanadi. Bundan tashqari, C++ tilida Null funktsiyalari ko'rsatkich o'zgaruvchilariga qiymat belgilashning bir usuli hisoblanadi.

Null va nol o'rtasidagi farq

Nul nol qiymatiga ega bo'lganligi sababli, odamlar ko'pincha Null va nol o'rtasidagi farqni qanday tushunish haqida chalkashib ketishadi.

C++ tilidagi null bu faqat Null ko'rsatkich konstantasini belgilaydigan va odatda nolga teng bo'lgan makrosdir. Biroq, Null sizga o'zgaruvchining hech qanday vaznga ega emasligini ifodalovchi muhim qiymatni beradi.

Ammo, nol qiymatning o'zi va u butun oqim ketma-ketligida shunday qoladi. Boshqacha qilib aytganda, Nol raqam qiymatining o'zi, Null esa bo'sh degan ma'noni anglatadi.

Siz buni muzlatgich uchun ajratilgan ma'lum joy deb o'ylashingiz mumkin. Agar muzlatgich mavjud bo'lsa, lekin unda hech narsa bo'lmasa, qiymat nolga teng. Boshqa tomondan, agar muzlatgich uchun ajratilgan joyda muzlatgich umuman bo'lmasa, qiymat Null hisoblanadi.

C++ tilida Nullptr nimani anglatadi?

“Nullptr” kalit so'zi Null ko'rsatkich qiymatini ifodalaydi. Ob'ekt tutqichi, ichki ko'rsatgich yoki mahalliy ko'rsatkich turi ob'ektga ishora qilmasligini ko'rsatish uchun Null ko'rsatkich qiymatidan foydalanasiz.

Faqat ko'rsatkichlar xotira joylarini ushlab turishi mumkin, qiymatlar esa ushlab turolmaydi.

Birinchidan, ko'rsatgich nima ekanligini tushunishimiz kerak. Bu xotira joylashuvini saqlaydigan oʻzgaruvchidir.

Nul koʻrsatgich ataylab hech narsaga ishora qiluvchi koʻrsatgichdir. Agar sizda koʻrsatgichga belgilashingiz mumkin boʻlgan manzilingiz boʻlmasa, Null dan foydalanishingiz mumkin. Null qiymati ko'rsatkichlari bo'lgan ilovalarda xotiraning oqishi va ishdan chiqishining oldini oladi.

Bundan tashqari, Nullptr-ni tekshirish uchun, C++ da ko'rsatgich Null ekanligini tekshirish uchun shart sifatida ko'rsatgich qiymatidan foydalanishingiz mumkin. Mantiqiy ifodalarda foydalanilganda Null ko'rsatkichlari noto'g'ri deb baholanadi.

Shuning uchun berilgan koʻrsatgichni if ​​bayonoti shartiga qoʻyib, uning Null ekanligini tekshirish mumkin. Xulosa qilib aytganda, Nullptr - bu ko'rsatgich tipidagi kalit so'z bo'lib, u Zero ni manzil sifatida ifodalaydi.

Shuningdek qarang: Ispan tilidagi "jaiba" va "cangrejo" o'rtasidagi farq nima? (Ajratilgan) - Barcha farqlar

Ko'p uchraydigan savol, agar Null belgisi mavjud bo'lsa, nima uchun Nullptr kerak. Buning sababi, C++ 11 da Nullptr Null ko'rsatgich konstantasidir va u tip xavfsizligini yaxshilagani uchun talab qilinadi.

Null va Nullptr bir xilmi?

Yo'q. Ular emas. Ularning farqlarini bilish uchun quyidagi jadvalga qarang.

Nullptr Null
Nolni ifodalovchi kalit so'z Nol qiymati
Nolni manzil sifatida ifodalaydi Qiymatni manzil sifatida ifodalaydi integer
Yangiroq va tavsiya etilgan funksiya Eski vaeskirgan funktsiya
Haqiqiy ko'rsatgich turi Butun son uchun taxallus sifatida amalga oshirilgan

doimiy nol

Adashib qolmaslik uchun kalit so‘zlarga e’tibor bering.

Null “manifest konstantasi” hisoblanadi, u aslida butun son bo‘lib, yashirin konvertatsiya tufayli ko‘rsatgichga tayinlanishi mumkin.

Holbuki, Nullptr o'z-o'zidan belgilangan turdagi qiymatni ifodalovchi kalit so'z bo'lib, u ko'rsatkichga aylantira oladi, lekin butun sonlarga aylanmaydi. Nullptr odatda Null ko'rsatgich bo'lib, har doim bitta bo'ladi. Agar siz uni butun songa belgilashga harakat qilsangiz, bu xatolarga olib keladi.

Agar buni hali tushunmasangiz, ushbu videoni tomosha qiling.

Ushbu videoda siz Null yoki nullptr kodidan nima va qachon foydalanish kerakligi toʻliq tushuntirilgan.

Null oʻrniga Nullptr dan foydalana olasizmi?

Ha . Ular bir xil bo'lmasa-da, Null o'rniga Nullptr dan foydalanishning bir usuli bor.

Bundan tashqari, Nullptr C++ tilidagi yangi kalit so'z bo'lib, uning o'rnini bosishi mumkin. Null. Nullptr bo'sh ko'rsatgichni ifodalovchi xavfsiz turdagi ko'rsatkich qiymatini beradi.

Ba'zilar Null-dan foydalanishni istamasalar-da, chunki u mos emas , bu bugungi kunda kamroq tarqalgan, chunki ko'plab kodlovchilar Null o'rniga Nullptr-dan foydalanish taklifiga amal qilmoqdalar.

Bundan tashqari, havoladan foydalanishdan oldin koʻrsatgich yoki tutqich havolasi Null ekanligini tekshirish uchun Nullptr kalit soʻzidan foydalanishingiz mumkin.

Nullptr-ga murojaat qila olasizmi?

Siz nullptrni bekor qilishingiz mumkin. Agar shunday qilsangiz, koʻrsatgich koʻrsatayotgan manzildagi qiymatga kirishingiz mumkin.

Kompyuter tillarida havolani oʻchirish koʻrsatgich bilan koʻrsatilgan xotira joyidagi maʼlumotlarga kirish yoki ularni boshqarish uchun ishlatiladi.

Ammo buni C tilida qila olmaysiz . Nul ko'rsatgich saqlangan ma'lumotlarga kirishda muhim ahamiyatga ega bo'lgan ob'ektga ishora qilmaydi. Null ko'rsatgich odatda ish vaqti xatosiga yoki dasturning zudlik bilan ishdan chiqishiga olib keladi.

Kompyuter dasturlashda ko'rsatgich o'zgaruvchisi ustida ishlovchi operator o'zgaruvchidir. U o'zgaruvchining qiymati bilan ko'rsatilgan xotiradagi joylashuv qiymatini qaytaradi . C++ dasturlash tilida bajariladigan hurmat yulduzcha (*) bilan ifodalanadi.

Yakuniy fikrlar

Nulni nol ko'rsatkichga olib keladigan makros sifatida belgilash mumkin, ya'ni bu o'zgaruvchining manzili yo'q. Null - bu C++ ga o'tkazilgan C tilidagi eski makro.

Ayni paytda, Nullptr C++11 da joriy qilingan yangiroq versiya bo'lib, Null o'rnini bosadi.

Shuning uchun, bugungi kunda Null o'rniga o'tmishda yoki hatto ushbu yozuvdan boshlab Null ishlatgan joylarda foydalanishni boshlash tavsiya etiladi.

    Ushbu maqolaning qisqartirilgan versiyasini ko'rish uchun shu yerni bosing.

    Mary Davis

    Meri Devis yozuvchi, kontent yaratuvchisi va turli mavzularda taqqoslash tahliliga ixtisoslashgan tadqiqotchi. Jurnalistika darajasiga va bu sohada besh yildan ortiq tajribaga ega bo'lgan Meri o'z o'quvchilariga xolis va to'g'ridan-to'g'ri ma'lumot etkazish ishtiyoqiga ega. Uning yozishga bo'lgan muhabbati yoshligida boshlangan va yozuvchilikdagi muvaffaqiyatli karerasining harakatlantiruvchi kuchi bo'lgan. Meri tadqiqot qilish va topilmalarni tushunarli va qiziqarli formatda taqdim etish qobiliyati uni butun dunyodagi o'quvchilarga yoqdi. Meri yozmaganida sayohat qilishni, kitob o'qishni va oila va do'stlar bilan vaqt o'tkazishni yaxshi ko'radi.