Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

C++كيفية إنشاء مؤشر لا يملك قيمة

إذا أردت إنشاء مؤشر لا يملك قيمة, لا بد أن تعطيه القيمة NULL أو القيمة nullptr لكي تضمن أنه فارغ و لا يوجد فيه أي قيم إفتراضية.
عندما تمرر له إحدى هاتين القيمتين تصبح قيمته تساوي 0 و عندها يصبح بشكل قاطع لا يشير لأي شيء موجود في الذاكرة لأنه لا يمكن لعنوان شيء موجود في الذاكرة أن يكون 0 فقط.


القيمة nullptr هي قيمة مخصصة في لغة C++ للتعامل مع المؤشرات.
القيمة NULL يمكن إستخدامها مع المؤشرات و أي شيء آخر نريد ضمان جعله لا يملك قيمة.


في المثال التالي قمنا بإنشاء مؤشر و طباعة القيمة الإفتراضية الموجودة فيه.

المثال الأول

main.cpp
#include <iostream>
using namespace std;
int main()
{
// بدون جعله يشير لقيمة شيء موجود في الذاكرة x هنا قمنا بتعريف مؤشر إسمه
int* x;
// في الذاكرة x هنا قمنا بطباعة عنوان الشيء الذي يشير إليه المؤشر
cout << "x = " << x;
return 0;
}
#include <iostream> using namespace std; int main() { // بدون جعله يشير لقيمة شيء موجود في الذاكرة x هنا قمنا بتعريف مؤشر إسمه int* x; // في الذاكرة x هنا قمنا بطباعة عنوان الشيء الذي يشير إليه المؤشر cout << "x = " << x; return 0; }

سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل.
نلاحظ أن المؤشر x ظهر فيه قيمة عشوائية.

x = 0x10
x = 0x10

هنا وضعنا مثال حول كيفية إنشاء مؤشر لا يملك قيمة ( Null Pointer ) بالإضافة إلى كيفية التشييك على المؤشر لمعرفة ما إن كان يملك قيمة أم لا.

المثال الثاني

main.cpp
#include <iostream>
using namespace std;
int main()
{
// و جعله لا يشير لأي شيء موجود في الذاكرة x هنا قمنا بتعريف مؤشر إسمه
int* ptr = NULL;
// لا يشير لشيء موجود في الذاكرة ptr سيتم تنفيذ أمر الطباعة الموضوع هنا إذا كان المؤشر
if (!ptr)
{
cout << "ptr is null";
}
// يشير لشيء موجود في الذاكرة ptr سيتم تنفيذ أمر الطباعة الموضوع هنا إذا كان المؤشر
else
{
cout << "ptr is not null";
}
return 0;
}
#include <iostream> using namespace std; int main() { // و جعله لا يشير لأي شيء موجود في الذاكرة x هنا قمنا بتعريف مؤشر إسمه int* ptr = NULL; // لا يشير لشيء موجود في الذاكرة ptr سيتم تنفيذ أمر الطباعة الموضوع هنا إذا كان المؤشر if (!ptr) { cout << "ptr is null"; } // يشير لشيء موجود في الذاكرة ptr سيتم تنفيذ أمر الطباعة الموضوع هنا إذا كان المؤشر else { cout << "ptr is not null"; } return 0; }

سنحصل على النتيجة التالية عند التشغيل.

ptr is null
ptr is null

إذاً عند التشييك على قيمة المؤشر نكتب (!ptr) إذا أردنا تنفيذ أوامر في حال كان المؤشر فارغ.
و نكتب (ptr) إذا أردنا تنفيذ أوامر في حال كان المؤشر يشير لشيء ما.