சி ++ முகவரி மூலம் அழைப்பு மற்றும் குறிப்பு மூலம் அழைப்பு

C Call Address



சி ++ என்பது ஒரு நெகிழ்வான பொது நோக்கம் கொண்ட நிரலாக்க மொழி. இது முதலில் உருவாக்கப்பட்டது ஜார்ன் ஸ்ட்ரூஸ்ட்ரப், ஒரு டேனிஷ் கணினி விஞ்ஞானி, 1985 இல். சி ++ மூன்று அளவுருக்கள் கடந்து செல்லும் முறைகளை ஆதரிக்கிறது, அதாவது, மதிப்பு மூலம் அழைப்பு, முகவரி மூலம் அழைப்பு மற்றும் குறிப்பு மூலம் அழைப்பு. இந்த கட்டுரையில், முகவரி மூலம் அழைப்பு மற்றும் குறிப்பு வழிமுறை மூலம் அழைப்பு பற்றி விவாதிக்க உள்ளோம்.

ஒரு செயல்பாடு என்றால் என்ன?

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







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



ஒவ்வொரு சி ++ நிரலும் முக்கிய () செயல்பாட்டைக் கொண்டிருக்கும். முக்கிய () செயல்பாடு C ++ நிரலுக்கான நுழைவுப் புள்ளியாகும். முக்கிய () செயல்பாட்டைத் தவிர, புரோகிராமர் அவர்கள் விரும்பும் பல செயல்பாடுகளை வரையறுக்க முடியும்.



ஒரு செயல்பாட்டை வரையறுக்கும் தொடரியல் இங்கே:





Return_type செயல்பாடு_ பெயர்(உள்ளீட்டு அளவுரு பட்டியல்)

C ++ இல் உள்ள செயல்பாடானது 0 அல்லது அதற்கு மேற்பட்ட உள்ளீட்டு அளவுருக்களை ஏற்க முடியும், அதேசமயம் அது ஒரு திரும்ப-மதிப்பை மட்டுமே கொடுக்க முடியும்.

முகவரி என்றால் என்ன?

C ++ இல் இரண்டு வகையான மாறிகள் உள்ளன (C மொழிக்கு ஒத்தவை) - தரவு மாறி மற்றும் முகவரி மாறி. முகவரி மாறி மற்றொரு தரவு மாறியின் முகவரியை சேமிக்கப் பயன்படுகிறது. எடுத்துக்காட்டாக, பின்வரும் குறியீட்டுத் துணுக்கைக் கருத்தில் கொள்வோம்:



intநான்= 100;
int *ptr= &நான்;

இங்கே, முதல் அறிக்கையானது, variable i ஆனது ஒரு தரவு மாறி என்று கூறுகிறது, மேலும் அது மதிப்பு 100 ஐ சேமித்து வைக்கிறது. இரண்டாவது அறிக்கையில், நாம் ஒரு சுட்டிக்காட்டி மாறியை அறிவிக்கிறோம், அதாவது ptr, மற்றும் மாறி i இன் முகவரியுடன் ஆரம்பிக்கிறோம்.

குறிப்பு என்றால் என்ன?

குறிப்பு சி ++ மொழியின் மற்றொரு சக்திவாய்ந்த அம்சமாகும். பின்வரும் குறியீட்டைப் பார்ப்போம்:

intக்கு= 200;
int &ஆர்=க்கு;

இந்த எடுத்துக்காட்டில், நாங்கள் ஒரு முழு எண்ணை அறிவித்துள்ளோம், அதாவது a மற்றும் பின்னர் ஒரு குறிப்பு மாறி r ஐ அறிவித்தோம், இது a இன் மதிப்போடு தொடங்கப்பட்டது. எனவே, குறிப்பு மாறுபாடு வேறொரு மாறியின் மாற்றுப்பெயரைத் தவிர வேறில்லை.

அளவுரு கடந்து செல்லும் முறைகள்:

சி ++ மொழியில் மூன்று வகையான அளவுரு கடந்து செல்லும் முறைகள் உள்ளன:

  1. மதிப்பின் மூலம் அழைப்பு / மதிப்பின் மூலம் பாஸ்
  2. முகவரி மூலம் அழைப்பு / முகவரி மூலம் பாஸ்
  3. குறிப்பு மூலம் அழைப்பு / குறிப்பு மூலம் பாஸ்

இந்த கட்டுரையில், - முகவரி மூலம் அழைப்பு மற்றும் குறிப்பு மூலம் அழைப்பு பற்றி விவாதிக்கிறோம்.

முகவரி மூலம் அழைப்பு / முகவரி மூலம் பாஸ் என்றால் என்ன?

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

குறிப்பு மூலம் அழைப்பு / குறிப்பு மூலம் பாஸ் என்றால் என்ன?

குறிப்பு மூலம் அழைப்பு / குறிப்பு முறை மூலம் பாஸ், செயல்பாட்டு அளவுருக்கள் குறிப்பாக அனுப்பப்படுகின்றன. செயல்பாட்டு வரையறைக்குள், குறிப்பு மாறியைப் பயன்படுத்தி உண்மையான அளவுருக்கள் அணுகப்படுகின்றன.

உதாரணங்கள்:

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

  1. எடுத்துக்காட்டு -1-முகவரி மூலம் அழைப்பு (1)
  2. எடுத்துக்காட்டு -2-முகவரி மூலம் அழைப்பு (2)
  3. எடுத்துக்காட்டு -3-குறிப்பு மூலம் அழைப்பு (1)
  4. எடுத்துக்காட்டு -4-அழைப்பு மூலம் அழைப்பு (2)

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

எடுத்துக்காட்டு -1-முகவரி மூலம் அழைப்பு (1)

இந்த எடுத்துக்காட்டில், நாங்கள் முகவரி மூலம் அழைப்பை நிரூபிக்க போகிறோம். முக்கிய () செயல்பாட்டிலிருந்து, நாங்கள் ஹலோ () செயல்பாட்டை அழைக்கிறோம் மற்றும் var இன் முகவரியை அனுப்புகிறோம். செயல்பாட்டு வரையறையில், var இன் முகவரியை ஒரு சுட்டிக்காட்டி மாறியில் பெறுகிறோம், அதாவது p. ஹலோ செயல்பாட்டின் உள்ளே, சுட்டிக்காட்டியின் உதவியுடன் var இன் மதிப்பு 200 ஆக மாற்றப்படுகிறது. எனவே, ஹலோ () செயல்பாட்டு அழைப்புக்குப் பிறகு முக்கிய () செயல்பாட்டின் உள்ளே var இன் மதிப்பு 200 ஆக மாற்றப்படுகிறது.

#சேர்க்கிறது
பயன்படுத்தி பெயர்வெளிமணி;

வெற்றிடம்வணக்கம்(int *)
{
செலவு <<endl<< உள்ளே ஹலோ () செயல்பாடு: ' <<endl;
செலவு << ' *P =' மதிப்பு << *<<endl;
*= 200;
செலவு << ' *P =' மதிப்பு << *<<endl;
செலவு << 'ஹலோ () செயல்பாட்டிலிருந்து வெளியேறுகிறது.' <<endl;
}

intமுக்கிய()
{
intஎங்கே= 100;
செலவு << முக்கிய () செயல்பாட்டின் உள்ளே var இன் மதிப்பு = ' <<எங்கே<<endl;

வணக்கம்(&எங்கே);

செலவு <<endl<< முக்கிய () செயல்பாட்டின் உள்ளே var இன் மதிப்பு = ' <<எங்கே<<endl;

திரும்ப 0;
}

எடுத்துக்காட்டு -2-முகவரி மூலம் அழைப்பு (2)

முகவரி முறை மூலம் அழைப்பின் மற்றொரு எடுத்துக்காட்டு இது. இந்த எடுத்துக்காட்டில், நிஜ வாழ்க்கை சிக்கலை தீர்க்க முகவரி மூலம் அழைப்பு முறையை எவ்வாறு பயன்படுத்தலாம் என்பதை நாங்கள் விளக்கப் போகிறோம். எடுத்துக்காட்டாக, இரண்டு மாறிகளை மாற்றுவதற்கு ஒரு செயல்பாட்டை எழுத விரும்புகிறோம். இரண்டு மாறிகள் இடமாற்றம் செய்ய நாம் மதிப்பு வழிமுறை மூலம் அழைப்பைப் பயன்படுத்தினால், உண்மையான மாறிகள் அழைப்பாளர் செயல்பாட்டில் மாற்றப்படாது. அத்தகைய சூழ்நிலையில் முகவரி மூலம் அழைப்பு முறையைப் பயன்படுத்தலாம். இந்த எடுத்துக்காட்டில், var_1 (& var_1) மற்றும் var_2 (& var_2) இரண்டின் முகவரியை mySwap () செயல்பாட்டிற்கு அனுப்புகிறோம். MySwap () செயல்பாட்டின் உள்ளே, இந்த இரண்டு மாறிகளின் மதிப்புகளை சுட்டிகளின் உதவியுடன் மாற்றிக்கொள்கிறோம். கீழேயுள்ள வெளியீட்டில் நீங்கள் காணக்கூடியது போல, இந்த மாறிகளின் உண்மையான மதிப்பு mySwap () செயல்பாட்டிற்குப் பிறகு முக்கிய () செயல்பாட்டில் மாற்றப்படுகிறது.

#சேர்க்கிறது
பயன்படுத்தி பெயர்வெளிமணி;

வெற்றிடம்mySwap(int *vptr_1,int *vptr_2)
{
inttemp_var;
temp_var= *vptr_1;
*vptr_1= *vptr_2;
*vptr_2=temp_var;
}

intமுக்கிய()
{
intvar_1= 100;
intvar_2= 300;

செலவு << 'MySwap () செயல்பாட்டை அழைப்பதற்கு முன், var_1 இன் மதிப்பு:' <<var_1<<endl;
செலவு << 'MySwap () செயல்பாட்டை அழைப்பதற்கு முன், var_2 இன் மதிப்பு:' <<var_2<<endl<<endl;

செலவு << 'MySwap () செயல்பாட்டை அழைக்கிறது - முகவரி மூலம் அழைக்கவும்.' <<endl<<endl;
mySwap(&var_1,&var_2);

செலவு << 'MySwap () செயல்பாட்டை அழைத்த பிறகு, var_1 இன் மதிப்பு:' <<var_1<<endl;
செலவு << MySwap () செயல்பாட்டை அழைத்த பிறகு, var_2 இன் மதிப்பு: ' <<var_2<<endl;

திரும்ப 0;
}

எடுத்துக்காட்டு -3-குறிப்பு மூலம் அழைப்பு (1)

இந்த எடுத்துக்காட்டில், சி ++ இல் குறிப்பு மூலம் அழைப்பு எவ்வாறு செயல்படுகிறது என்பதை நாங்கள் நிரூபிக்கப் போகிறோம். ஹலோ () செயல்பாட்டு வரையறையில், மதிப்பு ஒரு குறிப்பு மாறியாக (& p) பெறப்படுகிறது. குறிப்பு மாறியின் (அதாவது, p) உதவியுடன், முக்கிய () செயல்பாட்டின் உள்ளே உண்மையான அளவுருவின் (var) மதிப்பை மாற்ற முடியும்.

#சேர்க்கிறது
பயன்படுத்தி பெயர்வெளிமணி;

வெற்றிடம்வணக்கம்(int &)
{
செலவு <<endl<< உள்ளே ஹலோ () செயல்பாடு: ' <<endl;
செலவு << 'P =' மதிப்பு <<<<endl;
= 200;
செலவு << 'P =' மதிப்பு <<<<endl;
செலவு << 'ஹலோ () செயல்பாட்டிலிருந்து வெளியேறுகிறது.' <<endl;
}

intமுக்கிய()
{
intஎங்கே= 100;
செலவு << முக்கிய () செயல்பாட்டின் உள்ளே var இன் மதிப்பு = ' <<எங்கே<<endl;

வணக்கம்(எங்கே);

செலவு <<endl<< முக்கிய () செயல்பாட்டின் உள்ளே var இன் மதிப்பு = ' <<எங்கே<<endl;

திரும்ப 0;
}

எடுத்துக்காட்டு -4-அழைப்பு மூலம் அழைப்பு (2)

குறிப்பு மூலம் அழைப்பின் மற்றொரு எடுத்துக்காட்டு இது. இந்த எடுத்துக்காட்டில், நிஜ உலக உதாரணத்தின் உதவியுடன் C ++ இல் குறிப்பு மூலம் அழைப்பு எவ்வாறு செயல்படுகிறது என்பதை நாங்கள் நிரூபிக்கப் போகிறோம். MySwap () செயல்பாடு பின்வரும் அளவுருக்களுடன் பிரதான () செயல்பாட்டிலிருந்து அழைக்கப்படுகிறது - var_1 மற்றும் var_2. MySwap () செயல்பாட்டின் உள்ளே, நாங்கள் அளவுருக்களை குறிப்பு மாறிகளாகப் பெறுகிறோம்.

#சேர்க்கிறது
பயன்படுத்தி பெயர்வெளிமணி;

வெற்றிடம்mySwap(int &vref_1,int &vref_2)
{
inttemp_var;
temp_var=vref_1;
vref_1=vref_2;
vref_2=temp_var;
}

intமுக்கிய()
{
intvar_1= 100;
intvar_2= 300;

செலவு << 'MySwap () செயல்பாட்டை அழைப்பதற்கு முன், var_1 இன் மதிப்பு:' <<var_1<<endl;
செலவு << 'MySwap () செயல்பாட்டை அழைப்பதற்கு முன், var_2 இன் மதிப்பு:' <<var_2<<endl<<endl;

செலவு << 'MySwap () செயல்பாட்டை அழைக்கிறது - குறிப்பு மூலம் அழைக்கவும்.' <<endl<<endl;
mySwap(var_1, var_2);

செலவு << 'MySwap () செயல்பாட்டை அழைத்த பிறகு, var_1 இன் மதிப்பு:' <<var_1<<endl;
செலவு << MySwap () செயல்பாட்டை அழைத்த பிறகு, var_2 இன் மதிப்பு: ' <<var_2<<endl;

திரும்ப 0;
}

முடிவுரை

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