Sunday, December 1, 2024

Memory Pointers. (sinhala)

 

Memory Pointers.
-
Skyscraper සාදෘශ්‍යය:
-

• Skyscraper Building = Memory Space

මුළු ගොඩනැගිල්ලම ඔබේ වැඩසටහන භාවිතා කළ හැකි සම්පූර්ණ මතකය නියෝජනය කරන බව සිතන්න. ඇතුළත, බොහෝ මහල් සහ කාර්යාල ඇති අතර, සෑම කාර්යාලයක්ම විචල්‍යයක් හෝ දත්ත කැබැල්ලක් නියෝජනය කරයි. -

• එක් එක් මහල = මතක කොටස් හෝ විචල්‍ය

සෑම මහලකම කාර්යාල පොකුරක් ඇත (දත්ත හෝ විචල්‍යයන්). උදාහරණයක් ලෙස, පළමු මහලේ වයස, නම, හෝ ලකුණු වැනි විචල්‍ය අඩංගු විය හැකි අතර, දෙවන මහලේ උෂ්ණත්වය, වේගය යනාදිය අඩංගු විය හැක. -

• කාර්යාල නම් සහ ලිපිනයන් = විචල්‍ය නම් සහ මතක ස්ථාන

මෙම සාදෘශ්‍යයේ, කාර්යාල නාමය විචල්‍ය නාමයට සමාන වේ (උදා: වයස, ලකුණු). කාර්යාල ලිපිනය විචල්‍යයේ දත්ත ගබඩා කර ඇති මතක ලිපිනය වැනි ය. -

නාම විභේදනය (පොත් සාදෘශ්‍යය):

• සෑම මහලකම ඇතුල් වන ස්ථානයේ කාර්යාලවල නම් සහ ඒවායේ ලිපිනයන් ඇතුළත් පොතක් ඇත. මෙය ක්‍රමලේඛනයේ නාම විභේදනය වැනිය, එහිදී පද්ධතිය විචල්‍ය නාමය සොයා බැලිය යුතු අතර මතකයේ දත්ත ගබඩා කර ඇත්තේ කොතැනදැයි සොයා බැලිය යුතුය. -

අමතර කාර්ය: කාර්යාලය (මතක ලිපිනය) සොයා ගැනීමට පොත හරහා බැලීම සඳහා යම් කාලයක් හෝ පොදු කාර්ය ඇතුළත් වේ, විශේෂයෙන් ඔබට එය නැවත නැවත කිරීමට අවශ්‍ය නම් හෝ පද්ධතිය සංකීර්ණ නම්.
-

තොරතුරු සපයන්නා ලෙස පෙන්වා දෙන්නන්:

• පොයින්ටර්, කාර්යාලය (මතක ලිපිනය) පිහිටා ඇති ස්ථානය දැනටමත් හරියටම දන්නා තොරතුරු සපයන්නෙකු ලෙස ක්‍රියා කරයි. සෑම අවස්ථාවකදීම ඔබ එය පොතේ බැලීමට අවශ්ය නොවේ. -

ඔෆිස් 123 (විචල්‍යය) කොහිදැයි ඔබට දැන ගැනීමට අවශ්‍ය නම්, ඇතුල්වන ස්ථානයට ගොස් පොත (නම විභේදනය) පරීක්ෂා කරනවා වෙනුවට, ඔබ දැනටමත් ලිපිනය ඇති තොරතුරු සපයන්නාගෙන් (පොයින්ටර්) විමසන්න. -

අමතර බරක් නැත: පොයින්ටර් සමඟින්, ඔබට තොරතුරු සපයන්නා (පොයින්ටර්) විසින් සෘජු ලිපිනය ලබා දී ඇති නිසා ඔබ පොත හරහා බැලීමේ උඩිස් කොටස මග හරියි. මෙය කාලය ඉතිරි කරන අතර දත්ත වෙත ප්‍රවේශ වීම වේගවත් කරයි.

-

එය ක්‍රමලේඛනයට සම්බන්ධ වන ආකාරය:
-

1. නම අනුව ප්‍රවේශ වීම (පොත හරහා බැලීම):
-

ඔබ විචල්‍යයකට එහි නමෙන් ප්‍රවේශ වන විට (උදා: වයස), පද්ධතියට නම මතක ලිපිනයකට විසඳීමට අවශ්‍ය වේ (resolve the name to a memory address), ඒ සඳහා කාලය ගත විය හැකිය (පොත හරහා බැලීමේ කොටස).
-

2. පොයින්ටර් මගින් ප්‍රවේශ වීම (තොරතුරු දෙන්නාගෙන් ඇසීම):
-

දර්ශකයක් සමඟ, ඔබ දැනටමත් මතක ලිපිනය දන්නවා. එබැවින්, ඔබ නාම විභේදනය සඳහා කිසිදු අවශ්‍යතාවයකින් තොරව කෙලින්ම කාර්යාලයට (දත්ත) වෙත යා හැක. ඔබ දත්ත ගබඩා කර ඇති මතකයට සෘජුවම ප්‍රවේශ වීම නිසා මෙය වේගවත් වේ. -

සරල Arduino උදාහරණය:
-

දර්ශනය:

අපි විචල්‍ය වයසක් භාවිතා කරන අතර, එහි නම (සෘජුවම) සහ එහි ලිපිනය (දර්ශකයක් භාවිතයෙන්) යන දෙකින්ම එහි අගයට ප්‍රවේශ වන්නෙමු. -

කේත උදාහරණය:
-
int age = 25; // Declare an integer variable 'age'

void setup() {

// Start serial communication

Serial.begin(9600);

// Print 'age' using its name

Serial.print("Age (using name): ");

Serial.println(age); // Direct access using the variable name

// Now, let's create a pointer to 'age'

int *ptr = &age; // Pointer 'ptr' stores the memory address of 'age'

// Print 'age' using the pointer

Serial.print("Age (using pointer): ");

Serial.println(*ptr); // Dereferencing the pointer to access the value at that address

}

void loop() {

// Nothing to do in the loop for this example

}

-
පැහැදිලි කිරීම:

-

නමින් ඇමතීම:

අපි එහි නමින් සෘජුවම වයස ප්‍රවේශ කරන විට, අපි Serial.println(age); භාවිතා කර අගය වයස මුද්‍රණය කරමු. සම්පාදකය ස්වයංක්‍රීයව විචල්‍ය නාමය එහි අනුරූප මතක ලිපිනයට විසඳා අගයට ප්‍රවේශ වේ.

-

ලිපිනයෙන් ඇමතීම (පොයින්ටර්):

අපි & වයස භාවිතා කරමින් වයසේ මතක ලිපිනය ගබඩා කරන පොයින්ටර් ptr එකක් ප්‍රකාශ කරන්නෙමු. එම මතක ලිපිනයේ ගබඩා කර ඇති අගයට ප්‍රවේශ වීමට අපි දර්ශකය (*ptr) ඉවත් කරමු.

-

ක්‍රියාත්මක වන විට සිදු වන්නේ කුමක්ද?
-

නම අනුව:

ඔබ Serial.println(age); ලියන විට, සම්පාදකය වයස සොයා බලා, වයස ගබඩා කර ඇති මතක ලිපිනයට එය විසඳා, එම ලිපිනයේ ගබඩා කර ඇති අගය ලබා ගනී.

-

ලිපිනය අනුව:

ඔබ දර්ශකයක් භාවිතා කරන විට, ඔබ පද්ධතියට සෘජුවම මතක ලිපිනය ලබා දෙයි. පොයින්ටර් ptr වයස ලිපිනය අඩංගු වේ. ඔබ එය *ptr සමඟින් ඉවත් කළ විට, අගය ලබා ගැනීමට පද්ධතිය කෙලින්ම එම ලිපිනයට යයි.

-

අපේක්ෂිත ප්රතිදානය:

-

වයස (නම භාවිතා කිරීම): 25

වයස (දර්ශකය භාවිතා කරමින්): 25

-

මෙම සරල උදාහරණය Arduino හි නම-පාදක ප්‍රවේශය සහ ලිපිනය-පාදක ප්‍රවේශය (පොයින්ටර් හරහා) යන දෙකම නිරූපණය කිරීමට උපකාරී වේ. නම විසඳීමට අවශ්‍ය නොවී දර්ශකය මඟින් මතකයට සෘජු ප්‍රවේශය සපයන ආකාරය එය පෙන්වයි.

-

සාරාංශය:

• Skyscraper = මතක අවකාශය.

• මහල් සහ කාර්යාල = විචල්‍යයන්/දත්ත.

• පිවිසුමේ දී වෙන්කරවා ගන්න = මතක ලිපිනය සොයා ගැනීමට නම් විභේදනය.

• තොරතුරු සපයන්නා ලෙස පොයින්ටර් = මතක ලිපිනය වෙත සෘජු ප්‍රවේශය.

-

පොයින්ටර් යනු ඔබ සොයන කාර්යාලයේ ලිපිනය (මතක ස්ථානය) දැනටමත් දන්නා අභ්‍යන්තර තොරතුරු සපයන්නා වැනි වන අතර, නම විභේදනය ලිපිනය සොයා ගැනීමට ගොඩනැගිල්ලේ දොරටුවේ (මතක අවකාශය) පොත බැලීම වැනි ය. - තාමත් අපේ group එකේ නැත්තන් group එකට සෙට් වෙන්න :⁣

https://www.facebook.com/groups/paperclipx

මේ group එකේ දාන දේවල් හොඳයි කියල හිතෙනවනම් ඕගොල්ලොන් ගේ යාලුවන්වත් group එකට එකතු කරන්න !⁣

No comments:

Post a Comment