references c
Упознајте начине за декларисање и употребу референци на језику Ц ++.
Референца је главни концепт у програмском језику Ц ++. Иако није тако јак као показивачи, ипак нам омогућава да га користимо за писање ефикасних програма. Главна употреба референтне променљиве је у прослеђивању параметара функцијама.
Популарна техника прослеђивања параметара „проследи референцу“ користи референце. У овом упутству ћемо видети шта је референца и како је пријавити и користити. Такође ћемо разговарати о разликама између показивача и референци, као и о прослеђивању и враћању референце на / из функција.
=> Погледајте овде како бисте истражили целу листу водича за Ц ++.
Шта ћете научити:
- Шта је референца?
- Декларисање референтних променљивих
- Референца Вс Поинтерс
- Прослеђивање референци на функције
- Враћање референци
- Закључак
- Препоручено читање
Шта је референца?
Референца је псеудоним или друго име променљиве. С обзиром на променљиву са идентификатором, овој променљивој можемо пружити други идентификатор тако да се на њу можемо позвати или са њеним изворним именом или другим именом. Ово „друго име“ је оно што се назива референцом.
Узмимо у обзир да имамо променљиву „и“ са вредношћу 17. Ако је ј референца, тада је доленаведена меморијска репрезентација променљиве и и референце ј.
Као што је приказано на горњој слици, променљива и то је надимак, тј. Референтна тачка на исту вредност.
Декларисање референтних променљивих
Референца се може објавити помоћу оператора „&“.
Изјава о референци је приказана у наставку.
int a = 10; int& refvar = a;
Дакле, у горњем коду смо прогласили целобројну променљиву са вредношћу 10. Затим декларишемо другу променљиву рефвар и додељујемо јој променљиву. Имајте на уму да смо, док смо декларисали рефвар, користили & оператор непосредно пре имена променљиве. То указује да је рефвар референца на већ постојећу променљиву.
На променљиву „а“ можемо се позвати или помоћу имена променљиве а или помоћу референци „рефвар“.
тестирати алате за генерисање података отвореног кода
Доље је дат једноставан Пример референце:
#include #include using namespace std; int main() { int age = 22; int& numYears = age; double salary = 10000.00; double& wages = salary; cout<<'Age: '< Излаз:
Старост: 22
Број година: 22
Плата: 10000
Зараде: 10000
У горњем коду имамо целобројну променљиву старост. Даље, декларишемо референтну целобројну променљиву нумИеарс за променљиву узраста. Имамо још једну променљиву плату типа доубле. Даље, декларишемо двоструку референцу променљиве зараде за променљиву зараду.
Даље, исписујемо променљиве, прво узраст, затим његову референцу прати плата и референца. Ако проверимо резултате програма, схватићемо да променљива и референца на њу упућују на исту вредност, па стога старост и број година, као и зараде и зараде, имају исте вредности.
Референца Вс Поинтерс
У поређењу са показивачима, референце су сигурније и једноставније за употребу.
Разговараћемо о неколико разлика између показивача и референци:
- За разлику од показивача, референце не могу имати нулл вредност. Обавезно је да референцама буде додељена вредност.
- Референце се иницијализују у тренутку када су створене. За разлику од овога, показивачи се могу иницијализовати у било ком тренутку, а не нужно током декларације.
- Показивачи се могу лако доделити вредностима. Али са референцама, то не можемо учинити. Једном када је додељена вредност променљиве, тј. Када се створи псеудоним променљиве, овој референци не можемо доделити другу променљиву.
- Немамо неважећих референци. По дефиницији, референца је псеудоним за променљиву и она се иницијализује током самог креирања. Дакле, нема шансе да ћемо имати воид референцу и касније јој доделити променљиву са конкретним типом података. Насупрот томе, можемо имати празнине који показују.
Због ових горе наведених ограничења, референце у Ц ++-у се не могу користити са структурама података попут повезане листе. Имајте на уму да на Јави немамо сва ова ограничења или ограничења на референце.
Прослеђивање референци на функције
У нашим претходним водичима о функцијама већ смо разговарали о техници параметара „прослеђивање путем референце“ и видели смо пример замене два броја помоћу ове технике. У овом одељку прескачемо објашњење ове технике и само још једном представљамо функцију замене као пример.
Али овај пут ћемо уместо замјене бројева заменити две жице.
#include #include using namespace std; void swap(char * &str1, char * &str2) { char *temp = str1; str1 = str2; str2 = temp; } int main() { char *str1 = 'references'; char *str2 = 'pointers'; cout<<'str1 = '< Излаз:
стр1 = референце стр2 = показивачи
После замене….
стр1 = показивачи стр2 = референце
Дакле, у овом програму прослеђујемо низове (цхар *) функцији свап. Формални параметри су две референце на променљиву типа цхар *. Примећујемо да када се две вредности замењују, њихова модификација се одражава у позивајућој функцији јер за параметре користимо референце / псеудониме.
Враћање референци
Баш као и враћање показивача из функција, ми такође можемо вратити референце из функција. Враћање референци из функције такође враћа имплицитни показивач на повратну вредност. Из тог разлога, функција која враћа референцу може се користити на левој страни задатка.
Дајмо пример враћања референце из функције.
#include using namespace std; int myarray[] = {1, 0, 2, 3, 5}; int& setValues( int i ) //returns reference to the array { return myarray[i]; } int main () { cout << 'myarray before change' << endl; for ( int i = 0; i < 5; i++ ) { cout << 'myarray[' << i << '] = '; cout << myarray[i] << endl; } setValues(1) = 1; setValues(3) = 8; cout << 'Value after change' << endl; for (int i = 0; i < 5; i++ ) { cout<< 'myarray[' << i << '] = '; cout << myarray[i] << endl; } return 0; }
Излаз:
миарраи пре промене
миарраи [0] = 1
миарраи [1] = 0
миарраи [2] = 2
миарраи [3] = 3
миарраи [4] = 5
Вредност након промене
миарраи [0] = 1
миарраи [1] = 1
миарраи [2] = 2
миарраи [3] = 8
миарраи [4] = 5
Снимак екрана за исти приказан је испод:
Као што се види у горњем коду, дефинишемо функцију сетВалуес која враћа референцу и параметар који је цео број. Унутар функције само враћамо референцу низа на позицију И у Ц ++.
У главној функцији исписујемо вредности низа. Затим помоћу функције сетВалуес мењамо вредности два елемента у низу. Поново исписујемо вредност низа.
вр слушалице компатибилне са кбок оне
Једна ствар коју морамо приметити код референци је да можемо да имамо функцију која враћа референцу само када су подаци статични или глобални. Враћање референце на локалну променљиву у Ц ++ је незаконито.
Закључак
Читаоци треба да примете да је главна употреба референци за прослеђивање параметара функцијама.
У предстојећим водичима покриваћемо ламбда функције / изразе у Ц ++ пре него што пређемо на објектно оријентисано програмирање у Ц ++.
=> Овде погледајте најбоље туторијале за Ц ++.
Препоручено читање
- Најбољи БЕСПЛАТНИ водичи за Ц #: Крајњи водич за Ц # за почетнике
- Показивачи и операције показивача у Ц ++
- Испитивање оптерећења помоћу ХП ЛоадРуннер водича
- Променљиве у Ц ++
- Објектно оријентисано програмирање на језику Ц ++
- Водич за Уник цеви: Цеви у програмирању за Уник
- Функције библиотеке на Ц ++
- 70+ НАЈБОЉИХ Водича за Ц ++ за БЕСПЛАТНО учење Ц ++ програмирања