Mohssen A Mohssen نشر 1 ديسمبر 2021 أرسل تقرير نشر 1 ديسمبر 2021 ما الفرق بين النوع int * const و * int const ، حيث أجد صعوبة في فهم وظيفة كل نوع ومتى أسعمل كل نوع منها .. إلخ أريد أن أعرف متى يجب أن أستعمل كل واحد منهما، ومتى لا أستعمل النوع الآخر، وما إلى ذلك. وهل هناك طرق مختلفة لكتابة نفس النوع بأكثر من طريقة في لغة ++C؟ 1 اقتباس
1 سامح أشرف نشر 1 ديسمبر 2021 أرسل تقرير نشر 1 ديسمبر 2021 النوع * int يشير إلى مؤشر pointer إلى متغير من نوع int، ويكتب بصيغة واحدة فقط: int x{ 1 }; int * y{ &x }; std::cout << x << ' ' << y << '\n'; // 1 004FFA3C النوع الثاني هو * int const ، ويستخدم لعمل مؤشر pointer إلى ثابت من نوع int (أي أن المتغير هو الثابت وليس المؤشر)، ويكتب هذا النوع بطريقتين: const int x{ 1 }; // لاحظ أن هذا ثابت constant int const * y{ &x }; std::cout << x << ' ' << y << '\n'; // 1 004FFA3C // نفس الكود السابق const int x{ 1 }; const int * y{ &x }; // طريقة مختلفة لكتابة هذا النوع std::cout << x << ' ' << y << '\n'; // 1 004FFA3C النوع الثالث هو int * const وهو يعني عمل مؤشر ثابت لمتغير من نوع int (أي أن المؤشر pointer هو الثابت هنا): int x{ 1 }; int * const y{ &x }; std::cout << x << ' ' << y << '\n'; // 1 004FFA3C النوع الرابع وهو int const * const ويمكن أن يتم إستخدامه بطريقة أخرى وهي const int * const، تؤدي كلا الطريقتين نفس الغرض: const int x{ 1 }; int const * const y{ &x }; std::cout << x << ' ' << y << '\n'; // 1 004FFA3C // طريقة أخرى لإستعمال نفس النوع const int x{ 1 }; const int * const y{ &x }; std::cout << x << ' ' << y << '\n'; // 1 004FFA3C يمكنك ان تفهم ما يقوم به أي نوع من الأنواع السابقة من خلال قراءته من اليمين إلى اليسار، فعلى سبيل المثال النوع int * const يقرأ: int * const constant pointer to int لاحظ كيف أن إتجاه القراءة بدأ بكلمة const إلى int وبنفس الطريقة يمكن أن تقوم بقراءة باقي الأنواع: int * - pointer to int int const * - pointer to const int int * const - const pointer to int int const * const - const pointer to const int 1 اقتباس
السؤال
Mohssen A Mohssen
ما الفرق بين النوع int * const و * int const ، حيث أجد صعوبة في فهم وظيفة كل نوع ومتى أسعمل كل نوع منها .. إلخ
أريد أن أعرف متى يجب أن أستعمل كل واحد منهما، ومتى لا أستعمل النوع الآخر، وما إلى ذلك.
وهل هناك طرق مختلفة لكتابة نفس النوع بأكثر من طريقة في لغة ++C؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.