Can someone explain this code to me?

GT9

Well-known member
  • Jun 22, 2013
    1,564
    167
    63
    [email protected]
    මචංලා මේ කෝඩ් එක run කරාම එන්නේ 2ක. කොහොම මේ 2 කියන පිළිතුර එන්නේ?

    Code:
    #include <stdio.h>
    
    int main()
    {
        int num[] = {1,2,3,4,5};
        int *num_pointer = num;
        num[0] = 2;
        num[1] = num[2];
        num[2] = num[0];
        num[3] = *num_pointer;
        printf("%i",num[2]);
    return 0;
    }
     

    GT9

    Well-known member
  • Jun 22, 2013
    1,564
    167
    63
    [email protected]
    hodata code eka kiyawapan... eke kohen baluwath anthimata 2 neda enne kohomath? mn oka gana hariyatama danne na habai...

    bump thama...

    මගෙත් මොලේ ටිකක් මඥ්ඥං වෙලා තියෙන්නේ මේ වෙලාවේ.:baffled:
    btw thanks machan :)
     

    Jack_Sparrow

    Well-known member
  • Jun 16, 2008
    42,522
    1
    16,927
    113
    Black Pearl
    num[0] = 2; // Array first element value is assigned as 2

    num[1] = num[2];

    num[2] = num[0]; // Array 3rd element value is assigned by value of first element which is 2

    num[3] = *num_pointer; printf("%i",num[2]); // array third element is printed which is 2
     

    lilman

    Well-known member
  • May 10, 2009
    40,055
    52,982
    113
    Colombo
    Code:
    num[0] = 2;

    metanadi num 0 location ekata 2 assign wenawa.

    eeta passe monawakalath ....

    Code:
    num[2] = num[0];

    metanadi num 2 walata num 0 assign wenawa.ee kiyanne 2


    Code:
    printf("%i",num[2]);

    eeta passe uba print karanne num 2.ekata print wenne num 0 wala agaya :oo:
     
    • Like
    Reactions: GT9

    GT9

    Well-known member
  • Jun 22, 2013
    1,564
    167
    63
    [email protected]
    num[0] = 2; // Array first element value is assigned as 2

    num[1] = num[2];

    num[2] = num[0]; // Array 3rd element value is assigned by value of first element which is 2

    num[3] = *num_pointer; printf("%i",num[2]); // array third element is printed which is 2

    Code:
    num[0] = 2;

    metanadi num 0 location ekata 2 assign wenawa.

    eeta passe monawakalath ....

    Code:
    num[2] = num[0];

    metanadi num 2 walata num 0 assign wenawa.ee kiyanne 2


    Code:
    printf("%i",num[2]);

    eeta passe uba print karanne num 2.ekata print wenne num 0 wala agaya :oo:

    තෑන්ක්ස් මචංලා වැඩේ ගොඩ දැන් තේරුනා. statement එකෙන් එකට array elements වෙනස්වෙන හැටි කොලේක ලිව්ව වැඩේ තේරුනා. තෑන්ස් 2න්නටම දැන්නම් අවුලක්නෑ.

    එතකොට මේ කෝඩ් එකේ num[3] = *num_pointer; කියන ස්ටේට්මන්ට් එකෙන් කිසි වැඩක් නෑනේද?
     

    mr90486

    Well-known member
  • Sep 2, 2008
    1,705
    1,476
    113
    Everywhere
    array index start with 0 not 1

    int num[] = {1,2,3,4,5};

    its like:

    key 0 = 1
    key 1 = 2
    key 2 = 3
    key 3 = 4
    key 4 = 5


    num[0] = 2; // this assign value 2 to key 0
    num[1] = num[2] // this assign value of key 2 to key 1 it means 3
    num[2] = num[0] // this assigns value of key 0 to key 2. it means 2

    ignore other statements

    now when you printf("%i",num[2]); you will get 2 because key 2 has the value 2.
     
    • Like
    Reactions: GT9

    GT9

    Well-known member
  • Jun 22, 2013
    1,564
    167
    63
    [email protected]
    array index start with 0 not 1

    int num[] = {1,2,3,4,5};

    its like:

    key 0 = 1
    key 1 = 2
    key 2 = 3
    key 3 = 4
    key 4 = 5


    num[0] = 2; // this assign value 2 to key 0
    num[1] = num[2] // this assign value of key 2 to key 1 it means 3
    num[2] = num[0] // this assigns value of key 0 to key 2. it means 2

    ignore other statements

    now when you printf("%i",num[2]); you will get 2 because key 2 has the value 2.

    තෑන්ක්ස් මචං. මම සිටේට්මන්ට් එකෙන් එකට වෙනස් වෙන හැටි කොලේක ලිව්වම වැඩේ ලේසියෙන්ම තේරුනා.

    මෙන්න මේ වගේ

    1 2 3 4 5
    2 2 3 4 5
    2 3 3 4 5
    2 3 2 4 5
    2 3 2 2 5
     

    Jack_Sparrow

    Well-known member
  • Jun 16, 2008
    42,522
    1
    16,927
    113
    Black Pearl
    තෑන්ක්ස් මචංලා වැඩේ ගොඩ දැන් තේරුනා. statement එකෙන් එකට array elements වෙනස්වෙන හැටි කොලේක ලිව්ව වැඩේ තේරුනා. තෑන්ස් 2න්නටම දැන්නම් අවුලක්නෑ.

    එතකොට මේ කෝඩ් එකේ num[3] = *num_pointer; කියන ස්ටේට්මන්ට් එකෙන් කිසි වැඩක් නෑනේද?


    print ekata nam wedak naha
    oken wenne num_pointer kiyana pointer eke tiyana value eka 4th element.
    pointers wala store karanne memeory location eka, eka nisa oke tiyenne oni num array variable eke memory location eka... hariyata check karaganna printf("%i",num[3]); karala balanna
     

    GT9

    Well-known member
  • Jun 22, 2013
    1,564
    167
    63
    [email protected]
    Pointers, Assignments ehema patalenawa nam . Hama welema printf ekak daala balanna mokadda wela thiyenne kiyala :)

    තෑන්ක්ස් මචං, එහෙම තමයි මම ඇඩ්රස්, වැලුයිස් චෙක් කරන්නේ :)

    print ekata nam wedak naha
    oken wenne num_pointer kiyana pointer eke tiyana value eka 4th element.
    pointers wala store karanne memeory location eka, eka nisa oke tiyenne oni num array variable eke memory location eka... hariyata check karaganna printf("%i",num[3]); karala balanna

    ඔව් අයියා මම එහෙම ට්‍රයි කරා එතකොට එන්නෙත් 2. ඒකේ අවුලක් නෑ, ඇරේ එකකදී පොයින්ටර් වේරියබල් එකෙන් ගන්නේ මුල්ම එලිමන්ට් එක කියල මම දන්නව. තෑන්ක්ස් :)
     

    GT9

    Well-known member
  • Jun 22, 2013
    1,564
    167
    63
    [email protected]
    Jack_Sparrow අයියට කලින් රෙප් දීලලු, අනිත් හැමෝටම දුන්නා. :D උදව් කරාට හැමෝටම තෑන්ක්ස්.