في كتابه "Accelerated C "، يقدم Koenig مفهوم استخدام عامل التشغيل ' ' لتسلسل السلسلة الحروف والأشياء. في حين أن هذا قد يبدو واضحًا، إلا أن هناك فروق دقيقة يمكن أن تؤدي إلى نتائج غير متوقعة.
فكر في المثالين التاليين:
const string hello = "Hello";
const string message = hello ",world" "!";
const string exclam = "!";
const string message = "Hello" ",world" exclam;
المثال الأول يربط السلاسل الثلاث بنجاح. ومع ذلك، فشل المثال الثاني.
لفهم التناقض، يجب أن نأخذ في الاعتبار ترابط عامل التشغيل ' '. عامل التشغيل ' ' هو عامل ربط من اليسار إلى اليمين، مما يعني أنه يتم التقييم من اليسار إلى اليمين. يمكن أن يؤدي هذا إلى سلوك غير متوقع إذا لم يؤخذ في الاعتبار.
في المثال الثاني، يمكن وضع التعبير بين قوسين على النحو التالي:
const string message = ("Hello" ",world") exclam;
كما ترون، فإن السلسلتين الحرفيتين، "Hello" و",world،" متسلسلتان أولاً. ينتج عن هذا سلسلة حرفية، والتي لا يمكن ربطها بشكل أكبر مع كائن السلسلة "exclam."
هناك عدة طرق لحل هذه المشكلة:
const string message = string("Hello") ",world" exclam;
const string message = "Hello" (",world" exclam);
تم تصميم عامل التشغيل ' ' لربط كائنات السلسلة، وليس سلسلة حرفية. السلسلة الحرفية هي مصفوفة من الأحرف، وعند استخدامها في تعبير، يتم تحويلها إلى مؤشر إلى عنصرها الأولي. لا يُسمح بإضافة مؤشرين، كما في حالة تسلسل سلسلة حرفية، في لغة C .
بينما لا يمكنك تسلسل سلسلة حرفية باستخدام عامل التشغيل ' '، يمكنك ذلك اجمعها عن طريق وضعها جنبًا إلى جنب:
"Hello" ",world"
هذا يعادل:
"Hello,world"
هذا مفيد لتقسيم سلسلة حرفية طويلة إلى أسطر متعددة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3