C++ хэл дээрх Null болон Nullptr хоёрын ялгаа юу вэ? (Нарийвчилсан) - Бүх ялгаа

 C++ хэл дээрх Null болон Nullptr хоёрын ялгаа юу вэ? (Нарийвчилсан) - Бүх ялгаа

Mary Davis

“Nullptr” нь тэгийг хаягаар дүрсэлсэн түлхүүр үг гэж үздэг бол “Null” нь тэг утгыг бүхэл тоогоор илэрхийлнэ.

Хэрэв та програмист бол компьютерийн хэлийг ойлгох нь ямар чухал болохыг мэдэж байж магадгүй. Гэхдээ заримдаа энэ нь жаахан төөрөгдүүлж, хоёр зүйлийн хооронд андуурч магадгүй юм.

С++ хэл дээрх Null болон Nullptr-д ижил төстэй тохиолдол байдаг. Эдгээр хоёр нэр томъёоны ялгаа, хэрэглээг ойлгоход тань туслахын тулд эдгээр хоёр нэр томъёо нь юу гэсэн үг вэ, тэдгээрийн чиг үүргийг танд хэлье.

Шууд орж үзье!

Компьютерийн хэл гэж юу вэ?

Компьютерийн хэлийг программ болон тусгай программ бичихэд ашигладаг код эсвэл синтакс гэж тодорхойлж болно.

Мөн_үзнэ үү: домогт VS домогт Pokemon: өөрчлөлт & AMP; Эзэмшил - Бүх ялгаа

Үндсэндээ энэ нь компьютертэй харилцах албан ёсны хэл юм. Үүнтэй адилаар, өөр өөр улс орнууд хүмүүст бодол санаагаа хуваалцахад тусалдаг өөр өөр хэлтэй байдаг ба компьютерууд ч мөн адил.

Эдгээрийг компьютерийн програмчлалыг ойлгох, түүн дээр ажиллах зорилгоор зохион бүтээсэн. Ерөнхийдөө компьютерийн хэлийг үндсэн гурван төрөлд ангилж болно:

  • Ассемблер хэл

    Энэ хэлийг микропроцессоруудад ашигладаг доод түвшний хэл гэж үздэг. болон бусад олон програмчлагдах төхөөрөмжүүд. Энэ бол хоёр дахь үеийн хэл юм. Энэ нь үйлдлийн систем бичих, өөр өөр ширээний програм бичих зэргээр алдартай.

  • Машины хэл

    Энэ эх хэл нь эхний үеийн хэл юм.Үүнийг машины код эсвэл бүр объектын код гэж нэрлэдэг бөгөөд 0 ба 1 хоёртын тоонуудын багцыг агуулдаг. Эдгээр цифрүүд нь тэдгээрийг хурдан тайлбарладаг компьютерийн системээр ойлгож, уншдаг.

  • Өндөр түвшний хэл

    Энэ нь хуучин хэл дээрх зөөврийн асуудлаас болж байгуулагдсан. Код нь нэг машин дээр бичигдсэн кодыг шилжүүлж чадсангүй. Энэ хэл нь ойлгоход хялбар бөгөөд хэрэглэгчдэд маш ээлтэй.

Компьютерийн ойлгодог хэлний хэсгийг "хоёртын" гэж нэрлэдэг. Нөгөө талаас, програмчлалын хэлийг хоёртын систем рүү хөрвүүлэхийг "эмхэтгэх" гэж нэрлэдэг.

Товчхондоо програмчлалын хэл нь хүмүүст компьютерт заавар өгөх боломжийг олгодог бөгөөд ингэснээр тэдгээрийг уншиж, гүйцэтгэх боломжтой болно. Компьютерийн хэл бүр нь Си хэлнээс python хүртэл өөр өөрийн онцлог шинж чанартай байдаг.

Эдгээр хэлүүд нь том, нарийн төвөгтэй өгөгдлийг компьютерт илүү үр дүнтэй боловсруулахад хялбар бөгөөд хурдан болгодог. Өнөөдөр дэлхий дээр хэд хэдэн програмчлалын хэл байдаг. Эдгээрийн цөөн хэдэн нь Java, Python, HTML, C, C++ болон SQL юм.

С++ хэл гэж юу вэ?

С++ хэл бол дэлхийн хамгийн алдартай програмчлалын хэлнүүдийн нэг юм. Та энэ хэлийг үйлдлийн системүүд, хэрэглэгчийн график интерфэйсүүд болон орчин үеийн ертөнцөд суулгагдсан системүүдээс олох болно.

Энэ нь өндөр хүчин чадалтай программ үүсгэхэд ашиглагддаг платформ хоорондын хэл юм. C++ хэл бий болсонСи хэлийг бүтээх үүрэгтэй Бжарне Строуструп. Нэрнээс нь харахад энэ хэл нь Си хэлний өргөтгөл юм.

Энэ нь программистуудад системийн нөөц болон санах ойг дээд зэргээр хянах боломжийг олгодог. Та үүнийг аль хэдийн шинэчилсэн гэж бодож магадгүй. Гэсэн хэдий ч хэл нь 2011, 2014, 2017 онуудад гурван удаа шинэчлэгдсэн. Энэ нь C++11, C++14, C++17 болж өөрчлөгдсөн.

Өнөөдрийг хүртэл C++ хэл нь зөөврийн чадвараараа маш сайн үнэлэгдэж байгаа бөгөөд бүтээгчид өөр өөр үйлдлийн систем эсвэл платформ дээр үр дүнтэй ажиллах боломжтой програмуудыг хөгжүүлэх боломжийг олгодог.

Яагаад олон хүн C++ ашигладаг вэ?

Энэ хэл нь өргөн тархсан учир нь энэ нь объект хандалтат програмчлалын хэл бөгөөд программуудад ойлгомжтой бүтэц өгдөг бөгөөд кодыг дахин ашиглах боломжийг олгож хөгжүүлэлтийн зардлыг бууруулахад тусалдаг.

Өндөр гүйцэтгэлтэй учир энэ хэлийг тоглоом, ширээний программ, хөтөч, үйлдлийн систем хөгжүүлэхэд ашигладаг. Энэ хэлний өөр нэг онцлог нь зөөврийн бөгөөд олон платформд дасан зохицох боломжтой програмуудыг үүсгэх боломжийг олгодог.

Хэдийгээр энэ нь сурахад хамгийн хэцүү хэлүүдийн нэг гэдгээрээ алдартай боловч давуу талтай. Энэ нь олон парадигмын хэл, илүү дэвшилтэт синтакс функцын улмаас ойлгоход илүү төвөгтэй байдаг.

Хэрэв та C++ хэл сурч чадвал сурахад илүү их болноJava болон Python зэрэг үүний дараа бусад програмчлалын хэлүүд.

Товчхондоо, C++ нь ерөнхий зориулалттай, дунд түвшний програмчлалын хэл бөгөөд үүнийг "С хэв маягаар" кодлох боломжийг олгодог. Зарим тохиолдолд та аль ч форматаар кодчилол хийх боломжтой тул C++-ийг эрлийз хэлний жишээ болгов .

С ба С++ хэлүүд нь Null тэмдэгт, Null заагч, Null хэллэгтэй (цэг таслалаар (;) төлөөлдөг).

Цэг гэж юу вэ? C++?

Null нь тэг утгыг агуулсан суурилагдсан тогтмол гэж тооцогддог. Энэ нь компьютерийн програмчлалд тогтмол болон заагч юм.

Өгөгдлийн санд байх үед тэг нь утга юм. Null утга нь ямар ч утга байхгүйг илтгэнэ. Null-ийг утга болгон ашиглах үед энэ нь санах ойн байршил биш юм.

Түүнээс гадна, Null тэмдэгтгүй бол стринг зохих ёсоор дуусгах боломжгүй бөгөөд энэ нь олон асуудалд хүргэдэг. Null тэмдэгт нь өөр өөр програмчлалын хэлээр олон янзын хэрэглээтэй.

Та C++ хэл дээр Null-ийг хэрхэн бичих вэ гэсэн асуулт гарч ирнэ. Хэрэв Null тогтмол нь бүхэл тоотой бол түүнийг төрөл болгон хувиргаж болно.

Жишээлбэл, "Null" гэсэн энэ тэмдэгтийг Structured Query Language (SQL)-д өгөгдлийн санд өгөгдлийн утга байхгүй гэдгийг тодорхой тэмдэглэгч болгон ашигладаг. Харилцааны мэдээллийн сан нь тодорхой баганад байгаа утга нь тодорхойгүй эсвэл дутуу байвал хэлнэ.

Үүнээс гадна C# хэл дээр,програмчлалын хэл, Null нь "объект байхгүй" гэсэн утгатай. Энэ хэлэнд энэ нь тогтмол тэгтэй адил биш юм.

Гэхдээ C++ хэл дээрх Null тэмдэгт нь ямар ч хүчинтэй өгөгдлийн объект руу заагаагүй цорын ганц нөөцлөгдсөн заагч утга юм. Мөн C++ хэл дээр Null функцууд нь заагч хувьсагчдад утга оноох нэг арга юм.

Null ба тэгийг ялгах

Null нь тэг утгыг агуулж байдаг тул хүмүүс Null ба тэгийг хэрхэн ялгах талаар эргэлздэг.

С++ хэл дээрх Null нь зүгээр л Null заагч тогтмолыг тодорхойлдог макро бөгөөд ерөнхийдөө тэг утгатай байна. Гэсэн хэдий ч Null нь хувьсагч ямар ч жинг агуулдаггүй гэсэн чухал утгыг өгдөг.

Харин тэг нь өөрөө утга бөгөөд энэ нь бүх урсгалын дарааллаар үлдэх болно. Өөрөөр хэлбэл, Zero нь өөрөө тооны утга бөгөөд Null нь хоосон гэсэн үг юм.

Та үүнийг хөргөгчинд зориулагдсан тодорхой зай гэж ойлгож болно. Хэрэв хөргөгч байгаа боловч юу ч агуулаагүй бол утга нь тэг болно. Нөгөөтэйгүүр, хөргөгчинд зориулагдсан зайд хөргөгч байхгүй бол утга нь Null байна.

C++ хэл дээр Nullptr гэж юу гэсэн үг вэ?

“Nullptr” түлхүүр үг нь Null заагч утгыг илэрхийлнэ. Та объектын бариул, дотоод заагч эсвэл төрөл зүйл нь объект руу заадаггүй гэдгийг харуулахын тулд Null заагч утгыг ашиглах болно.

Зөвхөн заагч нь санах ойн байршлыг агуулж чадах ба утгуудыг хадгалах боломжгүй.

Нэгдүгээрт, заагч гэж юу болохыг ойлгох хэрэгтэй. Энэ нь санах ойн байршлыг хадгалдаг хувьсагч юм.

Үгүй заагч нь юу ч биш рүү санаатайгаар дохио өгдөг заагч юм. Хэрэв танд заагч руу зааж өгөх хаяг байхгүй бол Null-г ашиглаж болно. Null утга нь заагчтай программуудад санах ой алдагдахаас сэргийлдэг.

Түүнээс гадна Nullptr-г шалгахын тулд заагч утгыг C++ хэл дээр Null байгаа эсэхийг шалгах нөхцөл болгон ашиглаж болно. Логик илэрхийлэлд ашиглах үед Null заагчийг худал гэж үнэлдэг.

Тиймээс өгөгдсөн заагчийг if хэллэгийн нөхцөлд байрлуулж, энэ нь Null эсэхийг шалгах боломжтой. Товчхондоо, Nullptr нь тэгийг хаяг болгон илэрхийлдэг заагч төрлийн түлхүүр үг юм.

Нүх тэмдэгт байгаа үед яагаад Nullptr хэрэгтэй вэ гэсэн нийтлэг асуулт байдаг. Учир нь C++ 11 хэл дээр Nullptr нь Null заагч тогтмол бөгөөд энэ нь төрлийн аюулгүй байдлыг сайжруулдаг учраас шаардлагатай байдаг.

Null болон Nullptr нь адилхан уу?

Үгүй. Тэд тийм биш. Эхлээд тэдгээрийн ялгааг мэдэхийн тулд доорх хүснэгтийг үзнэ үү.

Nullptr Null
Тэгийг илэрхийлэх түлхүүр үг Тэг-ийн утга
Тэгийг хаягаар илэрхийлнэ Утгыг илэрхийлнэ бүхэл тоо
Шинэ болон санал болгож буй функц Хуучин бахуучирсан функц
Жинхэнэ заагч төрөл Бүхэл тоо

тогтмол тэгийн нэрээр хэрэгжсэн

Төөрөлдөхгүйн тулд түлхүүр үгсээ анхаарна уу.

Үгүй бол "манифест тогтмол" гэж тооцогддог бөгөөд энэ нь үнэндээ бүхэл тоо бөгөөд далд хөрвүүлгийн улмаас заагч руу оноож болно.

Харин Nullptr нь өөрөө тодорхойлсон төрлийн утгыг илэрхийлдэг түлхүүр үг бөгөөд заагч болгон хувиргах боломжтой боловч бүхэл тоо болгон хувиргах боломжгүй. Nullptr нь ерөнхийдөө Null заагч бөгөөд үргэлж нэг байх болно. Хэрэв та үүнийг бүхэл тоонд оноохыг оролдвол энэ нь алдаа гаргах болно.

Хэрэв та үүнийг ойлгоогүй хэвээр байвал энэ видеог үзээрэй.

Энэ видеонд Null эсвэл nullptr-г ямар үед, ямар үед стримерийн хамт кодлох талаар дэлгэрэнгүй тайлбарласан болно.

Та Null-ын оронд Nullptr ашиглаж болох уу?

Тийм . Хэдийгээр эдгээр нь ижил биш боловч Null-ийн оронд Nullptr-г ашиглах арга бий.

Үүнээс гадна Nullptr нь C++ хэл дээрх шинэ түлхүүр үг бөгөөд үүнийг орлуулж болох шинэ түлхүүр үг юм. Null. Nullptr нь хоосон заагчийг илэрхийлэх аюулгүй төрлийн заагч утгыг өгдөг.

Зарим хүмүүс Null-ийг тохиромжгүй ашиглахаас зайлсхийдэг ч өнөө үед олон кодлогч Null-ийн оронд Nullptr-ийг ашиглах саналыг дагаж мөрддөг тул энэ нь тийм ч ховор биш юм.

Үүнээс гадна та Nullptr түлхүүр үгийг ашиглан заагч эсвэл бариулын лавлагаа Null эсэхийг шалгах боломжтой.

Та Nullptr-ээс татгалзаж чадах уу?

Та nullptr-г үгүйсгэж болно. Хэрэв та үүнийг хийвэл заагчийн зааж буй хаяг дээрх утгыг авах боломжтой.

Компьютерийн хэлэнд заагчаар заасан санах ойн байршилд агуулагдаж буй өгөгдөлд хандах, удирдахын тулд лавлагааг арилгахыг ашигладаг.

Гэхдээ та үүнийг Си хэл дээр хийх боломжгүй . Null заагч нь хадгалагдсан өгөгдөлд хандаж буй утга учиртай объектыг заадаггүй. Null заагч нь ихэвчлэн ажиллах үеийн алдаа эсвэл шууд програмын эвдрэлд хүргэдэг.

Компьютерийн програмчлалд заагч хувьсагч дээр ажилладаг зүйлийг ялгах оператор гэнэ. Энэ нь хувьсагчийн утгаар заасан санах ойн байршлын утгыг буцаана. . C++ програмчлалын хэлэнд өгөгдөж буй хүндэтгэлийг одоор (*) тэмдэглэдэг.

Эцсийн бодол

Нэг цэгийг тэг заагч руу өгдөг макро гэж тодорхойлж болох бөгөөд энэ нь тухайн хувьсагчийн хаяг байхгүй гэсэн үг. Null нь C++-д шилжсэн Си хэлний хуучин макро юм.

Энэ хооронд Nullptr нь C++11-д нэвтрүүлсэн шинэ хувилбар бөгөөд Null-ийг орлуулах зорилготой юм.

Тиймээс та өмнө нь эсвэл энэ бичвэрийн үед Null-ийн оронд Null ашигладаг байсан газруудад өнөөдөр Nullptr-г ашиглаж эхлэхийг зөвлөж байна.

Мөн_үзнэ үү: Наруто дахь Шиноби VS Нинжа: Тэд адилхан уу? - Бүх ялгаа

    Энэ нийтлэлийн товчилсон хувилбарыг үзэхийн тулд энд дарна уу.

    Mary Davis

    Мэри Дэвис бол янз бүрийн сэдвээр харьцуулсан дүн шинжилгээ хийх чиглэлээр мэргэшсэн зохиолч, контент бүтээгч, шулуухан судлаач юм. Сэтгүүлзүйн чиглэлээр суралцаж төгссөн, энэ салбарт тав гаруй жил ажилласан туршлагатай Мэри уншигчдадаа шударга, шууд мэдээлэл хүргэх хүсэл эрмэлзэлтэй нэгэн. Түүний зохиол бичих дуртай залуу байхаас нь эхэлсэн бөгөөд зохиол бичих амжилтынх нь гол түлхэц болсон юм. Мэригийн судалгаа хийж, олдворуудыг ойлгоход хялбар, анхаарал татахуйц хэлбэрээр танилцуулах чадвар нь түүнийг дэлхийн өнцөг булан бүрээс уншигчдын хайрыг татсан юм. Мэри бичихгүй байхдаа аялах, ном унших, гэр бүл, найз нөхөдтэйгээ цагийг өнгөрөөх дуртай.