خطأ: لا يمكن إلغاء الإشارة إلى Int في C++

Khta La Ymkn Algha Alashart Aly Int Fy C



تحتاج لغات البرمجة إلى المكتبات والوظائف وبناء الجملة وأشياء أخرى عند العمل معها. وبالتالي، هناك احتمال أن تحتوي رموزنا على أخطاء. تحتوي البرمجة بلغة C++ على العديد من أنواع الأخطاء المميزة. سنناقش الخطأ 'لا يمكن إلغاء الإشارة إلى int في C++' هنا. يحدث هذا الخطأ عندما نحاول استخدام عامل عدم المرجعية '*' مع بيانات النوع الصحيح 'int' لأن 'int' هو نوع بيانات بدائي. لا يمكننا إلغاء الإشارة إلى 'int' في برمجة C++. هنا، الخطأ 'لا يمكن إلغاء الإشارة إلى int في C++' وسيتم استكشاف حله بدقة. يتم تقديم بعض الرموز في هذا الدليل الذي سنرى فيه كيفية حدوث هذا الخطأ وكيفية التعامل مع هذا النوع من الأخطاء في لغة C++.

مثال 1: إلغاء الإشارة إلى Int







في هذا الكود، سنحاول إلغاء الإشارة إلى 'int' في لغة C++. الآن، نقوم ببساطة بتضمين ملف الرأس 'iostream' للاستفادة من الوظائف المحددة. أسفل هذا، نستخدم 'مساحة الاسم القياسية' ونستدعي الطريقة 'main()' هنا. بعد ذلك، نعلن عن المتغير 'my_num' بنوع البيانات 'int' ونخصص '99' لهذا المتغير.



الآن، نعلن عن 'my_value' من نوع البيانات 'int' ونقوم بتهيئتها باستخدام '*my_num' مما يعني أننا نحاول إلغاء الإشارة إلى المتغير 'my_num' الذي هو من نوع البيانات 'int'. يتم إنشاء الخطأ على هذا السطر أثناء التجميع لأنه لا يمكننا إلغاء الإشارة إلى 'int'. نريد عرض القيمة التي حصلنا عليها بعد إلغاء الإشارة إلى int، لذلك نضع 'cout' الذي أضفنا فيه المتغير 'my_value'.



الكود 1:





#تشمل
استخدام اسم للمحطة؛
انت مين ( ) {
كثافة العمليات my_num = 99 ;
كثافة العمليات my_value = * my_num;
cout << 'القيمة التي نحصل عليها من خلال إلغاء الإشارة إلى int هي:' << my_value << نهاية؛
يعود 0 ;
}

انتاج:



هنا، قد نلاحظ عدم عرض أي قيمة ويحدث خطأ يفيد بوجود وسيطة نوع غير صالحة لـ '*' الأحادي. هذا يعني أنه لا يمكننا إلغاء الإشارة إلى 'int' في C++.

الحل 1: بدون إلغاء الإشارة

هنا، سوف نحصل على قيمة العدد الصحيح مباشرة دون إلغاء المرجعية. نقوم باستيراد ملف الرأس 'iostream' نظرًا لوجود بعض تعريفات الوظائف. بعد ذلك، نكتب 'مساحة الاسم std' مع الكلمة الأساسية 'باستخدام' ثم نستدعي الطريقة 'main()' هنا. الآن، نقوم بتهيئة المتغير 'my_num' من نوع البيانات 'int' بقيمة '99'.

ثم نقوم بتهيئة متغير آخر بالاسم “my_value” وتخصيصه بالمتغير “my_num” الذي يحتوي على الرقم الصحيح. بعد ذلك نحصل على هذه القيمة الصحيحة مباشرة دون إلغاء الإسناد عن طريق وضع 'my_value' في 'cout'. يؤدي هذا إلى الحصول على القيمة الصحيحة وعرضها.

الكود 1:

#تشمل
استخدام اسم للمحطة؛
انت مين ( ) {
كثافة العمليات my_num = 99 ;
int my_value = my_num;
cout << 'القيمة التي نحصل عليها دون إلغاء الإشارة إلى int هي:' << my_value << نهاية؛
يعود 0 ;
}

انتاج:

يتم عرض القيمة الصحيحة هنا والتي نحصل عليها دون إلغاء الإشارة إلى كود C++ الخاص بنا. نحن نصل مباشرة إلى هذه القيمة الصحيحة ونعرضها.

الحل 2: عن طريق إلغاء الإشارة إلى المؤشر

يحتوي ملف الرأس 'iostream' على تعريفات وظائف معينة؛ استوردناها. بعد ذلك، نقوم بتشغيل وظيفة 'main()' هنا بعد كتابة 'مساحة الاسم std' والكلمة الأساسية 'استخدام'. تتم الآن تهيئة المتغير 'my_num' من نوع البيانات 'int' بقيمة '99'.

بعد ذلك، نقوم بتهيئة مؤشر 'my_ptr' وتخصيص عنوان المتغير 'my_num' لهذا المؤشر. أسفل هذا، نلغي الإشارة إلى المؤشر ونخصص القيمة التي نحصل عليها من خلال هذا إلى متغير 'my_value' حيث قمنا بتهيئة 'my_value' باستخدام '*my_ptr'. الآن، نضع 'cout' الذي نمرر فيه المتغير 'my_value' لعرض القيمة الصحيحة التي حصلنا عليها من خلال إلغاء مرجعية المؤشر.

الكود 2:

#تشمل
استخدام اسم للمحطة؛
انت مين ( ) {
كثافة العمليات my_num = 99 ;
كثافة العمليات * my_ptr = & my_num;
كثافة العمليات my_value = * my_ptr;
cout << 'قيمة int التي نحصل عليها من خلال إلغاء الإشارة إلى المؤشر هي:' << my_value << نهاية؛
يعود 0 ;
}

انتاج:

يتم الآن عرض القيمة الصحيحة التي نحصل عليها بعد إلغاء الإشارة إلى المؤشر في الكود الخاص بنا هنا. لذا، هذه هي الطريقة الصحيحة لتطبيق إلغاء المرجعية في لغة C++.

المثال 2: إلغاء الإشارة إلى Int

دعونا نحاول إلغاء الإشارة إلى 'int' في C++ في هذا الرمز. لاستخدام الوظائف المحددة في 'iostream'، نحتاج فقط إلى تضمين ملف الرأس 'iostream'. هذا هو المكان الذي نستخدم فيه 'مساحة الاسم std' ونستدعي الوظيفة 'main()'. بعد ذلك، نقوم بإنشاء المتغير 'a' وإعطائه نوع البيانات 'int' بالإضافة إلى القيمة '75'.

أسفل هذا، نقوم بإنشاء مؤشر يسمى 'newPointer' ونقوم بتعيين عنوان المتغير 'a' لهذا المؤشر بمساعدة '&'. بعد ذلك، نقوم بتهيئة المتغير 'num' أدناه باستخدام '*a' مما يشير إلى أننا نحاول إلغاء الإشارة إلى المتغير 'a' الذي هو من نوع البيانات 'int'. نظرًا لأننا لا نستطيع إلغاء الإشارة إلى 'int'، فسيتم الآن إنتاج خطأ على هذا السطر أثناء التجميع. بعد ذلك، نستخدم أيضًا 'cout' الذي نضيف فيه المتغير 'num'.

الكود 2:

#تشمل
استخدام اسم للمحطة؛
انت مين ( ) {
كثافة العمليات = 75 ;
كثافة العمليات * نيوبوينتر = & أ؛
رقم صحيح = * أ؛
cout << 'قيمة إلغاء الإشارة إلى int هي:' << على واحد << نهاية؛
يعود 0 ;
}

انتاج:

هنا، يمكننا أن نرى أنه لا توجد قيمة معروضة وتظهر رسالة خطأ تشير إلى 'معلمة نوع غير صالحة للأحادي'*'. يشير هذا إلى أنه لا يمكن إلغاء الإشارة إلى 'int' في C++.

الحل 1: بدون إلغاء الإشارة

لن نحتاج إلى إلغاء الإشارة للحصول على القيمة الصحيحة على الفور. نقوم باستيراده نظرًا لأن ملف الرأس 'iostream' يحتوي على تعريفات وظائف معينة. يتم بعد ذلك استدعاء الوظيفة 'main()' بعد إدخال الكلمات الرئيسية 'using' و'namespace std'. تتم الآن تهيئة المتغير 'a' من نوع البيانات 'int' بقيمة '75'. بعد ذلك، نقوم بإدخال 'a' في 'cout' للحصول على هذه القيمة الصحيحة فورًا دون إلغاء المرجعية. يؤدي هذا إلى استرداد قيمة العدد الصحيح ويظهرها هنا.

الكود 1:

#تشمل
استخدام اسم للمحطة؛
انت مين ( ) {
كثافة العمليات = 75 ;
cout << 'القيمة التي نحصل عليها دون إلغاء الإشارة هي:' << أ << نهاية؛
يعود 0 ;
}

انتاج:

يتم هنا عرض القيمة الصحيحة التي تم الحصول عليها من كود C++ الخاص بنا دون إلغاء المرجعية. يمكن الوصول إلى هذه القيمة الصحيحة على الفور وتظهر هنا.

الحل 2:

نقوم باستيراد ملف الرأس 'iostream' الذي يحتوي على بعض تعريفات الوظائف. هنا، نكتب 'مساحة الاسم std' والكلمة الأساسية 'استخدام' قبل تنفيذ وظيفة 'main()'. يتم تعيين القيمة '75' للمتغير 'a'.

بعد ذلك، نعلن عن مؤشر يسمى 'mypointer' ونقوم بتهيئته بعنوان المتغير 'a' الخاص به. أسفل هذا، نلغي الإشارة إلى المؤشر ونخصص القيمة التي نحصل عليها من هذا إلى متغير 'النتيجة' أثناء تهيئة 'النتيجة' باستخدام '*mypointer'. بعد إلغاء الإشارة إلى المؤشر، نضع الأمر 'cout' ونمرر متغير 'النتيجة' لإظهار قيمة العدد الصحيح.

الكود 2:

#تشمل
استخدام اسم للمحطة؛
انت مين ( ) {
كثافة العمليات = 75 ;
كثافة العمليات * مؤشري = & أ؛
نتيجة كثافة العمليات = * mypointer;
cout << 'القيمة التي نحصل عليها من خلال إلغاء الإشارة إلى المؤشر هي:' << نتيجة << نهاية؛
يعود 0 ;
}

انتاج:

هذه هي التقنية المناسبة لتطبيق إلغاء الإشارة في لغة C++. يعرض القيمة الصحيحة التي حصلنا عليها بعد إلغاء الإشارة إلى المؤشر بدلاً من إلغاء الإشارة إلى 'int'.

خاتمة

لقد اكتشفنا أنه عندما نحاول الحصول على القيمة عن طريق إلغاء الإشارة إلى 'int' في C++، فإن 'معلمة النوع غير الصالحة للأحادي '*' التي تحتوي على خطأ int' ستحدث مما يعني أنه 'لا يمكن إلغاء الإشارة إلى int في C++'. لقد شرحنا أيضًا حل هذا الخطأ. استخدمنا الكود الذي حدثت فيه الأخطاء والأكواد التي قدمنا ​​فيها حل ذلك الخطأ في هذا الدليل.