Негизги айырмасы – C тилинде чыгуу менен реф
C - Microsoft тарабынан иштелип чыккан заманбап программалоо тили. Ал рабочий, веб жана мобилдик үчүн ар кандай тиркемелерди иштеп чыгуу үчүн колдонулат. Функциялар же методдор программалоодогу түшүнүк. Белгилүү бир тапшырманы аткаруу үчүн колдонулган билдирүүлөрдүн тобу функция же ыкма катары белгилүү. C программаларында аткаруу негизгиден () башталат. Бул ыкманын бир мисалы болуп саналат. Методду чакырганда маалымат методго берилет же методдон алынат. Жаңы ыкманы чакырган ыкма методду чакыруу деп аталат. Жаңы ыкма чакырылган ыкма деп аталат. Өтүүчү маанилерди башкаруу жана натыйжаны кайтаруу үчүн C параметрлерди колдонот. Алар бааланган параметрлер, чыгуу параметрлери жана шилтеме параметрлери. Маани параметрлери параметрди маани боюнча методго өткөрүү үчүн колдонулат. Шилтеме параметрлери шилтеме аркылуу ыкмага параметрлерди өткөрүү үчүн колдонулат. Чыгуу параметрлери натыйжаны методдон кайра өткөрүү үчүн колдонулат. C тилинде out ачкыч сөзү чыгаруу параметрлери үчүн колдонулат жана ref ачкыч сөзү параметрлерге шилтеме кылуу үчүн колдонулат. C ичинде out жана ref ортосундагы негизги айырма, out - бул чыгаруу параметрине шилтеме кылуу үчүн колдонулган ачкыч сөз, ал натыйжаларды чакырылган ыкмадан чакыруу ыкмасына өткөрүү үчүн колдонулат, ал эми ref - өтүү үчүн колдонулган шилтеме параметрине шилтеме кылуу үчүн ачкыч сөз. маалымат чалуу ыкмасынан чакыруу ыкмасына жана берилиштерди алуу үчүн чакырылган ыкмадан чакыруу ыкмасына.
Cде эмне бар?
Функциянын же ыкманын синтаксиси төмөнкүдөй. Методдо ыкманын аты, параметр тизмеси, кайтаруу түрү жана мүмкүндүк алуу спецификациясы сыяктуу бир катар элементтер бар.
(параметрлердин тизмеси)
{ //аткаруу үчүн билдирүүлөр
}
Ар бир ыкмада функцияны чакыруунун уникалдуу ыкмасы бар. Аткарылуучу билдирүүлөр тармал кашаалардын ичинде. Кайтаруу түрү функциянын маанини кайтарып бербесин түшүндүрөт. Кайтаруу түрү жок болгондо, ал жараксыз деп аталат. Мүмкүнчүлүктүн спецификациясы колдонмодогу ыкманын жеткиликтүүлүгүн көрсөтүү үчүн колдонулат. Параметрлер маалыматтарды алуу же методго өткөрүү үчүн колдонулат. Параметри жок ыкмалар да болушу мүмкүн. Параметрлер бааланган параметрлер, чыгаруу параметрлери же маалымдама параметрлери болушу мүмкүн.
Чыгуу параметрлери натыйжаларды кайра чакыруу ыкмасына өткөрүү үчүн колдонулат. Ал үчүн параметр ачкыч сөз менен жарыяланышы керек. Чыгуу параметри жаңы сактоо ордун түзбөйт. Жалпысынан, ыкма бир маанини кайтарат. Бирок C тилинде чыгуу параметрлерин колдонуу менен функциядан эки маанини кайтарууга болот. Төмөнкү программаны караңыз.
namespace колдонмо1{
жалпы классты эсептөө{
жалпыга ачык дисплей(out int a, out int b){
int мааниси=5;
a=маани;
b=маани;
a=a a;
b=bb;
}
жалпыга ачык статикалык жараксыз негизги(Сап аргтар){
int мааниси1=10, маани2=20;
Calculation cal=new Calculation();
cal.display(1 чыккан маани, 2 чыккан маани);
Console. ReadLine();
}
}
}
Дисплей функциясы негизги ыкмадан чакырылат. 1 жана эки мааниде 10 жана 20 бар, бирок алар методго алынбайт. Функцияда aнын мааниси 25, ал эми bдын мааниси да 25. Ошондуктан, ал баалуулуктар кайтарылып берилет. 1 жана 2 маанини басып чыгарганда, ал 10 жана 20ны бербейт. Анын ордуна 25 жана 25ти басып чыгарат. Out ачкыч сөзүн колдонуп, методдон бир нече маанини кайтарса болот.
C тилиндеги ref деген эмне?
Параметрлерди маани боюнча өткөрүүдө ар бир параметр үчүн жаңы сактагыч түзүлөт. Негизги программадан жөнөтүлгөн чыныгы параметрлер өзгөрбөйт. Анын ордуна, ал баалуулуктар өзүнчө жерге көчүрүлөт. Ошол жаңы өзгөрмө көчүрмөлөр формалдуу параметрлер деп аталат. Төмөнкү кодду караңыз.
namespace колдонмо1{
жалпы классты эсептөө{
коомдук жараксыз алмашуу(int x, int y){
int temp;
temp=x;
x=y;
y=temp;
}
жалпыга ачык статикалык жараксыз негизги(Сап аргтар){
Calculation cal=new Calculation();
int p=2;
int q=3;
кал.алмашуу(б, q);
Console. WriteLine(p);
Console. WriteLine(q);
Console. ReadLine();
}
}
}
Жогорудагы программага ылайык, Calculation классында метод алмашуу () бар. Негизги программада Calculation түрүндөгү объект түзүлөт. p жана q сыяктуу эки маани бар. p өзгөрмөсүнүн 2 мааниси жана q өзгөрмөнүн 3 мааниси бар. Бул эки маани своп ыкмасына өткөрүлөт. Своп методунда 2 мааниси х өзгөрмөсүнө, 3 мааниси у өзгөрмөсүнө көчүрүлөт. Temp өзгөрмөнүн жардамы менен баалуулуктар алмаштырылат. Негизги программага кайтып келгенде, p жана q басып чыгарууда, маанилер алмаштырылбайт. p мааниси дагы эле 2 жана q мааниси 3. Алмаштыруу ыкмасында да маанилер алмаштырылат, бирок негизги программада чагылдырылбайт.
Жогорудагыдай өткөрүүдөн айырмаланып, параметрлерди шилтеме аркылуу өткөрүүгө болот. Шилтеме өзгөрмө эстутумдун жайгашкан жерине шилтеме болуп саналат. Жаңы эстутумдун орду түзүлгөн жок. Методдогу өзгөртүүлөр негизги программада чагылдырылган. C тилинде шилтеме параметрлери ref ачкыч сөзү менен айтылат. Төмөнкү программаны караңыз.
namespace колдонмо1{
жалпы классты эсептөө{
коомдук жараксыз алмашуу(ref int x, ref int y){
int temp;
температура=x;
x=y;
y=temp;
}
жалпыга ачык статикалык жараксыз негизги(Сап аргтар){
Calculation cal=new Calculation();
int p=2;
int q=3;
кал.алмаштыруу(реф. б, реф. q);
Console. WriteLine(p);
Console. WriteLine(q);
Console. ReadLine();
}
}
}
Жогорудагы программага ылайык, Calculation классында алмаштыруу ыкмасы бар. Негизги программада Calculation түрүндөгү объект түзүлөт. Бул p жана q сыяктуу эки өзгөрмө. p өзгөрмөнүн 2 мааниси жана q өзгөрмөнүн 3 мааниси бар. Маанилерди өткөрүүнүн ордуна, p жана q эстутум жерлерине шилтеме методго өткөрүлөт. Бул шилтеме өзгөрмөлөр ref. Своп методунда баалуулуктарды жаңы жерге көчүрүүнүн ордуна, чыныгы параметрлерге өзгөртүүлөр киргизилет. Негизги программанын p жана q маанилерин басып чыгарууда, ал алмаштырылган маанилерди берет. Эми p мааниси 3 жана q мааниси 2.
C тилиндеги сырткы жана рефтин ортосунда кандай окшоштук бар?
Экөө тең методдун параметрлерине шилтеме жасоо үчүн колдонулган ачкыч сөздөр
C тилиндеги чыгуу менен рефтин ортосунда кандай айырма бар?
чыгып vs C |
|
Чыгуу - бул чыгаруу параметрине шилтеме кылуу үчүн колдонулган C тилиндеги ачкыч сөз. Ал натыйжаларды чакырылган ыкмадан чакыруу ыкмасына өткөрүү үчүн колдонулат. | Ref – бул шилтеме параметрине шилтеме кылуу үчүн колдонулган C тилиндеги ачкыч сөз. Ал чалуу ыкмасынан чалуу ыкмасына берилиштерди өткөрүү жана чалуу ыкмасынан маалыматтарды кайтаруу үчүн колдонулат. |
Функционалдык | |
Ачкыч сөздү колдонууда, маалымат чакыруу ыкмасынан чакырылган ыкмага өткөрүлүшү мүмкүн. Бирок бул маалыматтар жокко чыгарылат. Ал натыйжаны чакырылган ыкмадан чакыруу ыкмасына өткөрүү үчүн колдонулат. | Ref ачкыч сөзүн колдонууда, маалымат чакыруу ыкмасынан чакырылган ыкмага, ал эми иштетилген маалыматтар кайра чакыруу ыкмасына өткөрүлөт. |
Маалыматтарды өткөрүү | |
Ачкычтуу сүйлөмдү колдонууда, маалымат чалуу ыкмасына чакырылган ыкма менен өткөрүлөт. | Ref ачкыч сөзүн колдонгондо, маалымат эки жол менен өткөрүлөт: чакыруу ыкмасынан чакырылган ыкмага жана чакырылган ыкмадан чакыруу ыкмасына. |
Кыскача маалымат – C тилинде чыгууга каршы
Усулду чакырганда, баалуулуктарды методго өткөрүп, натыйжаларды методдон кайра алуу керек болушу мүмкүн. Буга жетүү үчүн C ар кандай параметрлерге ээ. Маани параметрлери параметрди маани боюнча методго өткөрүү үчүн колдонулат. Шилтеме параметрлери шилтеме аркылуу ыкмага параметрлерди өткөрүү үчүн колдонулат. Чыгуу параметрлери натыйжаны методдон кайра өткөрүү үчүн колдонулат. C тилинде out ачкыч сөзү чыгаруу параметрлери үчүн колдонулат жана ref ачкыч сөзү параметрлерге шилтеме кылуу үчүн колдонулат. C тилиндеги out менен ref ортосундагы айырмачылык, out - бул чыгаруу параметрине шилтеме кылуу үчүн колдонулган ачкыч сөз, ал натыйжаларды чакырылган ыкмадан чакыруу ыкмасына өткөрүү үчүн колдонулат, ал эми ref - маалыматты өткөрүү үчүн колдонулган шилтеме параметрине шилтеме кылуу үчүн ачкыч сөз. чалуу ыкмасын чалуу ыкмасына жана маалыматты чакырган ыкмадан чакыруу ыкмасына алуу.
PDF файлын C тилинде жүктөө
Сиз бул макаланын PDF версиясын жүктөп алып, аны оффлайн максаттары үчүн колдонсоңуз болот. Сураныч, PDF версиясын бул жерден жүктөп алыңыз: C тилиндеги Out жана Ref ортосундагы айырма