لماذا "يحذف دالة دون استدعائها (ليس f () ولكن f؛). طباعة 1 دائمًا؟"
في هذا الكود، يحاول الكود "استدعاء" دالة تسمى pr دون استخدام الأقواس. ومع ذلك، هذا لا يتم استدعاء الدالة فعلياً. بدلاً من ذلك، يتم تمرير مؤشر الدالة إلى الدالة cout. عندما يتم تحويل مؤشر الدالة ضمنيًا إلى قيمة منطقية، يتم تقييمها على أنها صحيحة. نظرًا لأن true يعادل 1 في لغة C، فإن الإخراج دائمًا هو 1.
للتوضيح، لا تستدعي الأسطر التالية من الكود المقدم الدالة pr:
pr;
cout لاستدعاء الدالة pr حقًا، ستحتاج إلى استخدام الأقواس مثل pr().
هذا ينبع السلوك من حقيقة أن المؤشرات الوظيفية قابلة للتحويل ضمنيًا إلى منطقية. في لغة C 11، من الممكن زيادة تحميل العامل
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3