الصفحة الرئيسية/ التقنية / دورة سي المستوى الثاني 2

دورة سي المستوى الثاني 2


for Large تمت الكتابة بواسطة : محمد

for Large for Mobile

11.استخدامات Strings



متغيّر String وهو مصفوفةٌ من الأحرف في الذاكرة. حيث أنّها فئة مشتقّة من مساحة الاسم std. وكل حرف داخل سلسلة يحتوي على 8 بت.

الفرق بين String و Char

الحرف char هو أصغر وحدة تتشكّل في الذّاكرة من الأحرف الأساسيّة. حيث تعتمد زيادة حجم الذّاكرة في متغير char على تحديد مساحةٍ من القيم قابلة للزيادة تلقائياً.

في لغة سي القياسيّة تم إضافة namespace يحتوي على مكتبة Strings. حيث كان المبرمجين يعتمدون قبل ذلك على إنشاء مصفوفة Static من الأحرف char. وغالباً ما يتم الإشارة إليها بمساحاتٍ محدودة.

في دورة c ++ سنتعرف على أنواع وصيغ مختلفة من استخدامات String.

أنواع string

هناك أكثر من طريقة في الإشارة الى متغير string، بما في ذلك:

  • string s1 (“Man”): ضع القيمة النصية بين قوسين.
  • “string s2 =” World: حدد المتغير وضع النّص بين الاقتباسات.
  • string s3: تحدّد المتغيّر من ثم إضافة النّص في وقت لاحق.

مثالٌ عليها

في حوزتنا مثال يوضح لك ماهيّة النصوص وكيفية استخدامها. في دورة c ++ المستوى 1. لن يتسنّى لنا الإشارة بكافة صيغ التّعريف. حيث سنتولّى ذكر أهمّها في تعريف النصوص.

 

#include<iostream>
#include<string> 
using namespace std;
int main()
{ 
    string s1("Man");
    string s2 = " World";
    string s3; s3 = s1;
    cout << "s3 = " << s3 << endl;
    s3 = "neither " + s1 + " nor";
    s3 += s2;
    cout << " s3 = " << s3 << endl;
    s1.swap(s2);
    cout << s1 << " nor " << s2 << endl;
    return 0;
}

 

 

 


 

12.الأحرف Char



يتم الإشارة إليه بالتّعريف char بلغة C ++. وهي مساحة محجوزة مخصّصة ويمكن استخدامها كثيرًا. كما أن فئة string القياسيّة تم بناؤها في متغيّرات الحروف.

دالة Setw

دالة Setw قادرة على اختيار جملة محددة من بين النصوص. ستختار هذه الوظيفة أول جملة مطبوعة. لكن طول الكلمة لا يتجاوز 20 حرفًا.

عند تحديد أي متغيّر من نوع char ،  ننصحك بطرح الطول الإجمالي للحرف من قيمة كافية في الذاكرة. لتفادي تجاوز سعة الذاكرة التي قمت بتحديدها.

مثال على char

لفهمِ متغيرات char في دورة c ++ ، انسخ الكود التالي في محرر الكود الخاص بك.

 

include<iostream>
#include<iomanip> 
using namespace std;
int main() 
{
    const int max = 20; 
    char str[max - 1]; 
    //because null value of character 
    cout << "Enter An String "; cin >> setw(max) >> str; cout << "You Entered n" << str;
    return 0;
}

 

 

 


 

13.الإدخال في C++


ليس شائعاً بكثرة في أساسيات تعلم اللغة نظراً لقلة استخدامه أثناء ربط مكتبات الأطراف الثالثة. لكن نعتبره أساساً في تحليلِ البيانات. خاصّة عند بناءِ شيفرة في لغة C القياسية.

في دورة c ++.سنقدم لك الشّروحات حول طريقة استخدام وحدة الإدخال.

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

أوامر الإدخال C++

هو بطبيعته أمرٌ برمجي يسمح لـ C ++ بقراءة معلومات الإدخال. حيث إما عرضها على الشّاشة أو الاحتفاظ بها في الذاكرة المؤقتة.

مثال

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

 

#include<iostream> 
using namespace std;
int main()
{ 
    const int size = 30;
    char str[size]; cout << "Enter An String : ";
    cin >> str; cout << "You Entered : n" << str;
    return 0; 
}

 

 


 

14.المعاملات في لغة c++


في دورة c ++. سنُدلي بأهم عناصر الاستخدام وهي المعاملات.

المعاملات من أساسيات لغات البرمجة. حيث تدل على استخدام علامات الجمع والطرح والقسمة والضرب (+ ، – ، / ، *). أو أكبر من وأقل من (<،>). بالتالي غيرها من العوامل التي سيتم التطّرق لها فيما بعد.

استخداماتُها

يمكن استخدام المعاملات في C ++ لأداء العمليات الحسابية والمنطقية في المعالجة. مما تؤدي غالبًا إلى نتائج وفروقاتٍ في شاشة الكونسول.

أنواعُها

تتوفر المعاملات في لغة C ، على شكل:

  • المعقوفة (): والتي تحتوي على قيمٍ داخلها. مثال

 

#include<iostream> 
using namespace std; 
int main() 
{ 
    bool c = true; 
    if (c) { 
        cout << "True" << endl;
    }
    return 0;
}

 

 

  • من نوع []: تستخدمها بشكل واسع في المصفوفات وتسميات العناصر.
#include<iostream> 
using namespace std;
int main()
{ 
    int arr[10];
    return 0;
}

 

  • المؤشر <-: نستخدمها في الإشارة إلى المتغيرات وعناوينها.
struct foo 
{ int x; float y; };
int main() 
{
    struct foo var;
    struct foo* values;
    var.x = 5; (& var)->y = 14.3;
    values->y = 22.4; (*values).x = 6;
    return 0;
}

 

  • + أو –: في C ++ تعني الزّيادة أو النّقصان.
int main() 
{
    int a = 5;
    a++; 
    cout << a << endl;
    a--; cout << a << endl;
    return 0; 
}

 

  • ++ أو —: وهي الزيادة الذاتية لقيمة المتغير. أو على العكس.
#include<iostream> using namespace std;
int main()
{ 
    int a = 5; --a;
    cout <<"This method is prefix : "<< a << endl;
    return 0;
}

 

  • * النجمة: نظرًا لاستخدامها في عمليّات الضرب. إلا أن لها دواع استخدام أخرى أيضاً.
#include<iostream> 
using namespace std;
int main() 
{ 
    int a = 5;
    std::cout << "This is value of a : " << a << endl;
    std::cout << "This is address of a : " << &a << endl;
    int *pointer = &a;
    ++*pointer;
    // use of * Asterisk
    std::cout <<"This value of a after affected by pointer : "<< a<< endl;
    return 0;
}

 

  • تشير علامة && الى عناوين المتغيرات في الذاكرة.
#include<iostream>
using namespace std; 
int main()
{ 
    int a = 5;
    std::cout << "This is value of a : " << a << endl;
    std::cout << "This is address of a : " << &a << endl;
    int *pointer = &a;
    //use of Address
    ++*pointer;
    std::cout <<"This value of a after affected by pointer : "<< a<< endl;
    return 0;
}

 

  • * ، / ، رموز النّسبة المئوية: القسمة / والضرب * والنسبة المئوية٪.

#include<iostream> 
using namespace std;
int main()
{ 
    int x = 15;
    int y = 7;
    int multi = x * y;
    int divide = x / y;
    int mod = y % x;
    std::cout << "x multi y = " << multi << endl;
    std::cout << "x divide y = " << divide << endl;
    std::cout << "y modulus x = " << mod << endl;
    return 0; 
}

 

  • <<، >> رموز Bitwise: نستخدمها كثيرًا في جمل الطباعة وجمل الإدخال. ولها استخدامات أخرى متقدّمة.
std::cout << "This is int a : " << 20 << endl;
 std::cout << "This is int a : " << a << endl;
 std::cout << "This is char z : " << z << endl;

 

  • <، <= العلامات: للتمييز بين أكبر من> أو أصغر من <أو أكبر من أو يساوي <= أو أقل من أو يساوي> =.
if (x <= y) { std::cout << "Hello World"; }

 

  • الإشارات == ، ! =: هي علامات داخل الجمل الشرطيّة ، تساوي == أو لا تساوي! =.
if (x == y && x != z) { std::cout << "Hello World"; }

 

وهناك أيضا الكثير من المعاملات التي تعذّر لنا جلبها في هذه الوحدة. لكن المعاملات الرئيسية تتمثّل في إشارات الجمع والطرح والضرب والقسمة , وعلامة يساوي.

 


 

15.الحلقات التكرارية For Loop


 

موضوع for loops مزعج قليلًا للمبتدئين ، لذلك نطلب منك التركيز جيداً. و سنحاول تبسيط المسألة قدر المستطاع.

For loop هي بالأصل دالة تبدأ بالكلمة for والشرط والتنفيذ داخل الأقواس. والحلقة for هي عصبٌ مهمّ لــ لغة البرمجة C ++ ولغات البرمجة الأخرى. فهي بمثابة حاسبة تعمل بتوالي الأرقام جمعاً أو طرحاً أو الإثنين معاً(في مراحل متقدمة).

فوائدُها

على سبيل المثال , وفي حال أنّك تريد البحث في مصفوفة تحتوي على 8 عناصر. فسيكون ذلك على النحو التالي:

#include <string>
#include <iostream>
int main()
{ 
    using std::string;
    string str[8] = { "Welcome" , "To" , "C++" , "Hello" , "World" , "Free" , "circle" , "online"}; 
}

 

 

وإن كنت تريد طباعة العناصر على شاشة (الكونسول). فإنّك ستقوم بطباعة عناصر المصفوفة واحدًا تلو الآخر ، بحيث يبدو ذلك كما يلي:

#include <string>
#include <iostream>
int main()
{
    using std::string;
    string str[8] = { "Welcome" , "To" , "C++" , "Hello" , "World" , "Free" , "circle" , "online"};
    std::cout << str[0] << std::endl;
    std::cout << str[1] << std::endl;
    std::cout << str[2] << std::endl;
    std::cout << str[3] << std::endl;
    std::cout << str[4] << std::endl;
    std::cout << str[5] << std::endl;
    std::cout << str[6] << std::endl;
    std::cout << str[7] << std::endl;
    return 0;
}

 

ما يصح لنا تسمية العمليّة بــ HardCoding. فهي تتعاملُ مع عددٍ من البيانات يدويًا. وهذه المسألة بالتالي قد تُجدي نفعًا في عنصرًا أو عنصرين لكنها مُرهقة للغاية إن كنت تريد طباعة 200 عنصر.

على سبيل المثال ،لن يكن الأمر مرهقًا على مستوى الطباعةِ فحسب، ولكن أيضًا في جلب البيانات ومعالجتها. بالرغم من ذلك , جاءَت دالًة for loop لتكن بذلك الحل الأمثل للتجوّل فيما بين العناصر كافةً.

آليّةُ عملِها

مكونات دالة for loop هي:

  • القوسين (): يتم إرفاق قوسين داخل الأقواس متغيّر يعمل بمثابة ساعةٍ للعدّ.
  • الأقواس المجعدة {}: لمعالجة القيم الموجودة بداخلها.

التطبيق

سنعمل  خطوة بخطوة في كتابة الكود أولاً:

سنقوم بإضافة مصفوفة مكونة من عناصر عدّة.

 

#include <string>
#include <iostream> 
int main()
{ 
    using std::string;
    string str[8] = { "Welcome" , "To" , "C++" , "Hello" , "World" , "Free" , "circle" , "online"}; 
    for (int i = 0; i < 8; i++)
    {
    } 
    return 0; 
}

 

المتغير i هو العداد للحلقة التكرارية ، ويجب ألاّ ننسى وضع الفاصلة المنقوطة في C بالطريقة المبينة في الشيفرة.

على سبيل المثال, تخيّل أن هنالك قلم يكتب في حلقة for. وفي كل دورة يضبط من قيمة ساعة العد ومن ثمّ يعمل على زيادتها.

بعد ذلك يدخل في جسم الحلقة for. و بالتالي يعود مرة أخرى للأعلى. ثمّ يضبط قيم العداد من جديد ، وهكذا دواليك.

في الواقع ، القلم هو المترجم ، الذي يستمرّ في الدوران داخل الحلقة التكرارية حين تنتهي. ثم ينتقل إلى مهامٍ أخرى أو ينهي البرنامج.

هذا هو إيقاع البرمجة. إن أتقنتها في فهم الحلقات التكرارية ، وستفهم الكثير لاحقًا.

قم بنسخ شيفرة حلقة for:

#include <string>
#include <iostream>
int main()
{ 
    using std::string; 
    string str[8] = { "Welcome" , "To" , "C++" , "Hello" , "World" , "Free" , "circle" , "online"};
    for (int i = 0; i < 8; i++) 
    { 
        std::cout << str[i] << " ";
    } 
    std::cout << "n";
    system("PAUSE");
    return 0;
}

 

من أجل تعزيز أهميّة الحلقة for. يجب أن ندرك أن المصفوفات لها عناوين وعناصر في الذاكرة. وكل عنوان في مكان مختلف في الذاكرة.

على سبيل المثال ، إذا أردنا الوصول إلى عنصر str [ 3]. التي تحتوي على القيمة “Hello” ، في عداد الحلقة التكرارية. فكل ما علينا فعله هو استخدام جملة الطباعة ليظهر العنصر على الشاشة.

 


 

16.الجملُ الشرطية


يمكن تسميتها أيضا بالبوّابات المنطقيّة في لغاتِ البرمجة. حيث أنّها تحتوي على شرطٍ يحتمل الصّواب أو الخطأ. بالإضافة إلى أن استخداماتها عديدة ومتنوعة داخل الشّيفرة. فهي بمثابةِ نقطة الالتقاء والّتي من خلالها يدوّن المبرمج خياراته المُتاحة للعتاد.

التعريف

تتكون الجملة الشرطيّة من صيغة عامّة . حيث تدلّ على خصائصها وهي: 

  • if (الشرط): يبدأ بكلمة if ، وعادة ما يحتوي الشرط على نفي أو إثبات للقيمة.
  • {} الأقواس : الأقواس المُجعّدة باعتبارها دالّة قياسيّة في اللغة.
if (x) { //do something }

 

فوائد استخدامُها

الجمل الشرطيّة لها فوائد للمبرمج و للمشروع ، ومن أهمّها:

  •  حصر الخيارات في قيمٍ يعملُ على تخصيصها المبرمج للعتاد.
  • استيعاب أعداداً لامحدودة من الاحتمالات. وإغلاق الوظيفة في حال استيفاء الشرط.
#include <string>
#include <iostream>
int main() 
{ 
    using std::string; 
    string str[8] = { "Welcome" , "To" , "C++" , "Hello" , "World" , "Free" , "circle" , "online"};
    for (int i = 0; i < 8; i++)
    { 
        if (str[i] == "Hello") 
            //if statement 
        { std::cout << str[i] << " "; } } std::cout << "n";
    system("PAUSE");
    return 0;
}

 

 

17.المصفوفات


 

المصفوفة، هي حيّز من المساحة يتم تخصيصه في الذاكرة ، حيث يتكون من متغيّر يحتوي على قيمٍ عدة من العناصر.

أسْبابُ استخدامها

يعود استخدام المصفوفات لحاجة من المبرمجين في تنظيم وتنسيق العناصر في الذاكرة. فهي تعود عليهم بالفائدة في حال كان هناك أعداداً كبيرة من العناصر يصعب التّعامل معها.

على سبيل المثال ، عند تحديد 3 متغيرات ، int a = 5 ، int b = 1 ، int c = 6 ، سيتطلب ذلك منك المرور بكافة العناصر وكأنك قمت بدورٍ حسابي عوضاً عن الحاسوب.

وهذا من شأنه ضعف وهشاشة الشيفرة البرمجيّة. لذلك كان لا بد لك من بناء مصفوفة وتعبئة البيانات اللازمة. دون أدنى اكتراث لأماكن وجودها في الذاكرة.

قيمُها

تختلف طريقة طباعة أو قراءة المصفوفة. عن الطرق التقليدية لتعريف المتغيرات وقراءتها.

على سبيل المثال ، وعند طباعة متغير من النوع int a = 6. نسمي هذا المتغير باسم فريد من نوعه داخل المحرر.

لكن عند طباعة المتغيرات داخل المصفوفة أعلاه. نقوم بعمل حلقة تكرارية للمرور بكافة العناصر فيها وجلب البيانات اللاّزمة منها دون معرفة تفاصيلها في الذاكرة.

الفهرس هو مخزن الذاكرة الذي يحوي مكان وعنوان تلك المتغيرات. بالتالي تحدد قيمها بحريّة تامّة ودون الحاجة لاستخدام أسماء وتعريفاتٍ إضافية.

مثالٌ عليها

في دورة c ++ المستوى الأول سنتطرق إلى تضمين مثالٍ واحد حول المصفوفات.

 

#include<iostream>
using namespace std;
int main()
{
    int a[4]; 
    cout << "Please Enter Values : n";
    for (int i = 0; i <= 3; i++) 
    { 
        cin >> a[i]; 
    } 
    cout << "We Have Finished Fill Array";
    for (int i = 0; i < 4; i++)
    {
        cout << "Inserted " << a[i] << endl;
    } 
    return 0; }

 

 


 

18.الصفوف في لغة C++


 

قد تحتاج أحيانًا إلى كتابة الفئات أو الكائنات على صفحة واحدة. من ثمّ تنفيذها مع دوالها خارجياً وعند الحاجة. هل هذا ممكن؟.

نعم هذا ممكن. تتمثل إحدى خصائص الوظائف أو الدوال في أنه يمكن تنفيذها في طريقة الإعلان والتعريف. في هذا الدرس ، سنضع رمزًا للفئات الموجودة لدينا في مكان ما. ثم ننفّذ الوظائف خارج حدود الكائن وذلك عن طريق الاتصال المباشر به.

أسباب استخدامُها

في بعض الأحيان تتطلب منا الشيفرة بعض التنظيم ، وحلول البرمجة متعددة آنذاك. ونحن الآن أمام لغة تتيح لنا العديد من الحلول.

لذلك كان من السهل على المبرمجين جعل الصفوف في صفحات أخرى من لغة سي. ومن ثم استدعائها وتنفيذها في مكان آخر.

الآن, سنتعلّم سويّاً إنشاء Class ووضع بعض الدوال والمتغيرات بداخله. ومن ثم نقم باستدعائه في صفحة MAIN الخاصة بلغة C++.

طريقة انشاء Class

سنقوم بعمل Class بمتغيرين ومتغير ثالث يقوم باستقبال النتيجة. بالتالي نعمل على تنفيذها في دالّتين داخل الــ Class.

 

class calculate

{

private: 

int x = 10;

int y = 15; 

int res;

public: 

    void process(); 

    int getResult();

};

 

 

لاحظ أننا صنعنا Class هنا وقمنا بتسميته calculate. وأعطيناه قيمًا داخلية للمتغيرات x و y. وسيعيد المتغير res القيمة جراء جمع المتغيرين بدالّة.

تستطيع عمل Declaration(تعيين) اسم الدالة بداخل Class. ومن ثم تقوم بالاتصال بها من الخارج. شريطة القيام بتعريف اسم Class التي أتت الدالة منه.

الاتصال في الدالة من الخارج

في دورتنا هذه (دورة c ++). نريد استخدام طريقة أخرى. ولتكن الاتصال من خارج Class. وإجراء بعض العمليّات الحسابية بنفس متغيراته.

 

void calculate::process() { res = x + y; } 

int calculate::getResult() { return res; }

 

 

لاحظ أننّا قمنا باستدعاء دوال Class السابق. ومنها دالة الحساب process. والتي جمعنا فيها قيمة x و y ووضعناها في متغير يسمى res.  والذي سيتم تطبيقه في دالة رجعية getResult.

إضافة كائن في دالة main

ننتقل الآن إلى المرحلة الأخيرة ، وهي الاتصال بالكائن الذي قمنا بإنشائه . بالتالي يصبح الكود الرئيسي كما يلي:

 

int main()

{

    calculate test;

    test.process();

    int val = test.getResult();

    std::cout << “The Result Is : ” << val << endl;

    return 0;

}

 

 

في السطر الأول ، حددنا الكائن ، وهو من نوع Calculate (الكلاس الذي قمنا ببنائه سابقًا). ثم أطلقنا عليه اسم test، وأطلقنا عليه اسم دالة process.

وبما أن وظيفة get Result هي دالة إرجاع قيمة. فقد تلقّينا قيمتها داخل متغير حدّدناه في الأساسي. وهو نوع val من نوع الدّالة تمامًا. بحيث تظهر قيمة المتغير في شاشة الكونسول.

لقد حاولنا قدر المستطاع تبسيط الشروحات حول الصفوف في دورة c++ مستوى المبتدئين. كما أن للصّفوف استخداماتٍ واسعة في لغة سي. وفي وجودها ستتمكن من عزل الكثير من القُمامة البرمجية.

 

 


 

19.المؤشرات(Pointers)


 

المؤشرات من أهم خصائص لغة C ++. فهي تحمل بداخلها أهم عنصر من المتغيرات وهو العناوين. حيث تتحكم في عمليات الذاكرة بشكل واسع وغير محدود. وهذا ما يميز C ++ عن لغات أخرى تفتقر إلى هذه الميزة.

تعريف المؤشرات

تؤدي المؤشرات دورها بشكل مثالي. حيث إنها قادرة على الوصول إلى عناوين المتغيرات الأخرى والتحكم في موضعها في الذاكرة. ويتم تحديد المؤشرات بواسطة هذا النحو الخاص int * p = & x.

لتفادي تعقيد المسألة . إذا نظرنا إلى المتغير عند تعريفه. فسنجد أنه مكون من:

  • & العنوان المرجعي: عنوان فريد في الذاكرة متبوع برموز معينة. ولا يمكن لأي متغير آخر الحصول على ترتيبه في الذاكرة.
  • القيمة: هي القيمة التي نراها عند تعريف المتغير, على سبيل المثال. يمكننا القول أن لدينا متغيرًا int x = 10 والمؤشرات تلعب نفس الدور تقريبا في ذلك الأمر.
  • عدد صحيح وله قيمة مساوية لـ 10 ، لكن له عنوانًا مخصصًا في الذاكرة. حيث يمكننا الوصول إليه من خلال تضمين a & قبل المتغير ويسمى مرجعًا.

بعد أن قمنا بشرح بسيط شكل المتغيرات في الذاكرة ومكوناتها. سنقوم بتوضيح المؤشرات بمثال عملي بسيط يتناسب مع المستوى المطروح في دورة c ++. فلا تكترث من صعوبة الخطوات السابقة.

جلب العناوين

سنقدم مثالاً لجلب عنوان المتغير الذي حددناه مسبقاً في الذاكرة:

نحدد متغير عدد صحيح .

 

#include<iostream> 
using namespace std;
int main()
{ 
    int a = 5;
    return 0;
}

 

 

نقوم بطباعة قيمة المتغير متبوعة بعنوان محجوز في الذاكرة. بحيث يبدو الرمز كما في المثال:

 

#include<iostream>
using namespace std; 
int main() 
{ 
    int a = 5; 
    std::cout << "This is value of a : " << a << endl; 
    std::cout << "This is address of a : " << &a << endl; 
    return 0; 
}

 

قم بمعاينة وتشغيل هذا الرمز لإظهار نتيجة الكونسول كما يلي:

في حال انتابتك بعض الصعوبات في هذا المستوى ، يرجى قراءة الدرس مرة أخرى. ومن ثمّ تطبيق جميع الأمثلة في محرر الكود الخاص بك.

المتغيرات المؤثرة

من أهم خصائص ووظائف المؤشرات أنها يمكن لها التأثير في قيم المتغيرات الأخرى. على سبيل المثال. الآن سنقوم بتعريف المؤشر الأول في الذاكرة وربطه بعنوان المتغير a الذي حددناه سابقًا.

نحدد المؤشر ونسميه Pointer* وهو أيضًا من نوع الأعداد الصحيحة. ومن المهم تحديد مؤشرات نوع المتغير.

 

#include<iostream> 
using namespace std;
int main()
{ 
    int a = 5; 
    std::cout << "This is value of a : " << a << endl;
    std::cout << "This is address of a : " << &a << endl;
    int *pointer = &a;
    return 0;
}

 

 

نلاحظ هنا أن المؤشر يجب أن يأخذ عنوان المتغير أثناء التعريف. فمن غير المقبول من قبل المترجم تحديد المؤشر ثم ربطه لاحقًا في عنوان المتغير.

نقوم بزيادة قيمة المتغير a بالمؤشر باستخدام طريقة البادئة. بحيث يصبح شكل الكود كما في المثال.

 

#include<iostream>
using namespace std;
int main()
{ 
    int a = 5;
    std::cout << "This is value of a : " << a << endl;
    std::cout << "This is address of a : " << &a << endl;
    int *pointer = &a;
    ++*pointer;
    //This is pointer and we increased a value through it using prefix method
    return 0; 
}

 

 

في الخطوة الأخيرة ، سنطبع قيمة المتغير a لنرى تأثير المؤشر.

مثالٌ عليها

من فضلك ، لفهم المؤشرات جيدًا في دورة c ++. انسخ الرموز التالية في محرر التعليمات البرمجية الخاص بك.

 

 

#include<iostream>
using namespace std;
int main()
{
    int a = 5;
    std::cout << "This is value of a : " << a << endl;
    std::cout << "This is address of a : " << &a << endl;
    int *pointer = &a; ++*pointer;
    std::cout <<"This value of a after affected by pointer : "<< a<< endl;
    return 0;
}

 

وقت النشر : 2023-12-13 14:48:04 ·

1    التصنيفات






2    مقالات من التقنية

3     تطبيقات اندرويد

يعتمد هذا الموقع على عرض الإعلانات في تحقيق الدخل ، نشكر تفهمكم الدائم ونتمنى لكم قضاء وقت رائع ... وشكراً :D .