முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்
தொகுதி 3 · பாடம் 2 இன் 2பாடத்திட்டத்தில் 8/18~12 min
தொகுதி பாடங்கள் (2/2)

மதிப்பு மற்றும் குறிப்பு மூலம் அனுப்பவும்

C++ இல், நீங்கள் ஒரு செயல்பாட்டிற்கு ஒரு வாதத்தை அனுப்பும் போது, ​​அதைச் செய்ய இரண்டு முக்கிய வழிகள் உள்ளன: மதிப்பின்படி அல்லது குறிப்பு மூலம்.

இந்த வேறுபாட்டைப் புரிந்துகொள்வது நிரலின் சரியான தன்மை மற்றும் செயல்திறன் மேம்படுத்தல் ஆகிய இரண்டிற்கும் முக்கியமாகும்.

மதிப்பின்படி தேர்ச்சி (நகல்)

இயல்பாக, C++ மதிப்பின்படி வாதங்களை அனுப்புகிறது. இதன் பொருள் நினைவகத்தில் தரவுகளின் நகல் உருவாக்கப்பட்டது. செயல்பாட்டின் உள்ளே செய்யப்படும் எந்த மாற்றமும் அசல் மாறியை வெளியே பாதிக்காது:

C++
#include <iostream>

void increment(int n) {
    n++; // Modifies only the local copy
}

int main() {
    int x = 5;
    increment(x);
    std::cout << x << std::endl; // Prints 5, x remains unchanged!
    return 0;
}

குறிப்பு மூலம் கடந்து செல்லவும் (&)

அசல் மாறியை மாற்றியமைக்க செயல்பாட்டை நீங்கள் விரும்பினால் அல்லது பெரிய பொருட்களை (நீண்ட சரங்கள் அல்லது திசையன்கள் போன்றவை) நகலெடுப்பதைத் தவிர்க்க விரும்பினால், நீங்கள் பாஸ் பை ரெஃபரன்ஸ் ஐப் பயன்படுத்த வேண்டும்.

அளவுருவின் வகைக்குப் பிறகு & குறியீட்டைச் சேர்ப்பதன் மூலம் ஒரு குறிப்பு அறிவிக்கப்படுகிறது:

C++
#include <iostream>

void incrementRef(int& n) {
    n++; // Modifies the original variable directly
}

int main() {
    int x = 5;
    incrementRef(x);
    std::cout << x << std::endl; // Prints 6!
    return 0;
}

int& n அளவுரு ஒரு நகல் அல்ல, ஆனால் செயல்பாட்டை அழைக்கும் போது அனுப்பப்பட்ட x மாறிக்கு ** மாற்றுப்பெயர்** (நேரடி குறிப்பு).

நீங்களே முயற்சி செய்து பாருங்கள்

உடற்பயிற்சி#cpp.m3.l2.e1
முயற்சிகள்: 0ஏற்றுகிறது…

ஒரு முழு எண் n (int& n ஐப் பயன்படுத்தி) மற்றும் அதன் மதிப்பை இரட்டிப்பாக்கும் வெற்றிடமான திரும்பும் வகையுடன் doubleNumber என்ற செயல்பாட்டை வரையறுக்கவும். 10 க்கு துவக்கப்பட்ட மாறி val ஐ முக்கிய பாஸிங்கில் அழைக்கவும், பின்னர் val ஐ அச்சிடவும்.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

செயல்பாடு கையொப்பம் ஒரு குறிப்பைக் குறிக்க வகைக்குப் பிறகு `&` எழுத்தைப் பயன்படுத்துகிறது:` void doubleNumber(int& n)`.

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்

உடற்பயிற்சி#cpp.m3.l2.e2
முயற்சிகள்: 0ஏற்றுகிறது…

a மற்றும் b (int& a, int& b) ஆகிய இரண்டு முழு எண் குறிப்புகளை எடுத்து ஒரு தற்காலிக மாறி temp ஐப் பயன்படுத்தி அவற்றின் மதிப்புகளை மாற்றும் swap என்ற செயல்பாட்டை வரையறுக்கவும். x மற்றும் y ஐ மாற்றுவதற்கு முக்கியமாக அதை அழைக்கவும், பின்னர் அவற்றை அச்சிடவும்.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

பயன்படுத்தவும் `int temp = a; a = b; b = temp;` மதிப்புகளை மாற்ற.

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்