C සඳහා උදාහරණ – 15

අපි කලින් ඉගෙන ගත්තා x++ හා ++x යන Increment Operators වර්ගයත් –x හා x–යන Decrement Operators වර්ගයත්. මෙහිදී ලකුණ විචල්‍යයේ නමට ඉදිරියෙන් දැම්මොත් Prefix කියලත් පස්සෙ දැම්මොත් Postfix කියලත් කියනවා. ඒ කියන්නෙ Prefix Increment Operators, Postfix Increment Operators, Prefix Decrement Operators, Postfix Decrement Operators කියල මේ වර්ගයේ ජාති හතරක් තියෙනවා. දැන් අපි ඉගෙන ගන්න යන්නෙ Prefix හා Postfix දෙකේ වෙනසයි.

අපි කලින් ඉගෙන ගත්තා, ඒ කියන්නෙ පසුගිය ලිපියේ කතා කළා, යම් හෙයකින් තනි පේළියක Increment/Decrement Operators භාවිතා කළොත් ලැබෙන පිළිතුර Prefix වලදිත් Postfix වලදිත් සමානයි කියල. එහෙම නම් වෙනස තියෙන්නෙ තව නියෝගයක් ඇතුළෙ ලිව්වොත් වෙන්න ඕනෙ.

ඒ එක්කම ඕගොල්ලො දැන ගන්න ඕනෙ printf() නම් නියෝගය තුළ අවශ්‍ය නම් ගණනය කිරීමක් ලිවිය හැකි බව. හැබැයි ඒ ගණනය කිරීම වරහනක් ඇතුළෙ එන්න ඕනෙ. ඒ කියන්නෙ printf((x+3)-(y-2)) ලෙස නියෝගයක් ලිවීම නිවැරදියි.

දැන් අපි මුලින්ම x හා y නම් විචල්‍යයන් දෙකක් අර්ථ දක්වා ඒවායේ 10 නම් අගය ගබඩා කරමු. ඊළඟට printf() නම් නියෝගය තුළ මේ විචල්‍යයන්ට Prefix හා Postfix වර්ගයේ Increment Operators යොදමු. ඊළඟට පිළිතුර නිරීක්ෂණය කරමු.

මේ ප්‍රෝග්‍රෑම් එක Test15A.gcc නමින් ගබඩා කර Compile කර Run කළායින් පස්සෙ පෙනෙයි x හි අගය 10 ලෙසත් y හි අගය 11 ලෙසත් ගබඩා වී ඇති බව. එහෙත් මේ ප්‍රෝග්‍රෑම් එකෙහි අගින් නැවතත් x හා y හී අගයයන් සාමාන්‍ය පරිදි තිරයේ දැක්වීම සඳහා නියෝග දෙකක් ලිව්වොත් ඒවායේ අගයයන් 11 බව පෙනේවි. මෙහි තේරුම කුමක්ද ?

printf() වැනි යම්කිසි නියෝගයක් තුළ x++ ලෙස ලිව්වොත් එහි තේරුම එම නියෝගයට x හි අගය භාවිතා කර ඉන්පසු x හි අගය එකකින් වැඩි කරන බවයි. එහෙත් ++x ලෙස ලිව්වොත් එහි තේරුම මුලින් x හි අගය එකකින් වැඩි කර ඉන්පසු එම අගය නියෝගය සඳහා භාවිතා කරන බවයි. මේ කුමන ක්‍රමයකින් වුවත් නියෝගය අවසන් වී ඊළඟ පේළියට යන විට x හි අගය එකකින් වැඩිවී තිබීම වැදගත් කාරණයකි.

This entry was posted in 16. C++, සිංහල and tagged , . Bookmark the permalink.

One Response to C සඳහා උදාහරණ – 15

  1. www.blogsinhala.com says:

    We have joined your blog in http://blogsinhala.com/ Please register and joint your blog and win best blogger award and amazing prizes.

    Thanks
    Admin
    http://blogsinhala.com/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s