Ключова разлика – аут срещу реф в C
C е модерен език за програмиране, разработен от Microsoft. Използва се за разработване на различни приложения за десктоп, уеб и мобилни устройства. Функции или методи е концепция в програмирането. Тази група от изрази, които се използват за изпълнение на конкретна задача, е известна като функция или метод. В C програмите изпълнението започва от main (). Това е пример за метод. Когато извиквате метод, данните се предават на метода или се получават от метода. Методът, който извиква новия метод, е известен като извикване на метода. Новият метод е известен като наречен метод. За управление на предаваните стойности и връщане на резултата C използва параметри. Те са оценени параметри, изходни параметри и референтни параметри. Параметрите стойност се използват за предаване на параметри в метода по стойност. Референтните параметри се използват за предаване на параметри към метода чрез референция. Изходните параметри се използват за предаване на резултата обратно от метода. В C ключовата дума out се използва за изходни параметри, а ключовата дума ref се използва за препратка към параметри. Ключовата разлика между out и ref в C е, че out е ключова дума, използвана за препращане на изходен параметър, който се използва за предаване на резултати от извикания метод към извикващ метод, докато ref е ключова дума за препращане на референтен параметър, който се използва за предаване данни от извикващ метод към извикан метод и за получаване на данните от извикания метод към извикващ метод.
Какво има в C?
Синтаксисът за функция или метод е както следва. Методът има редица елементи като име на метод, списък с параметри, тип на връщане и спецификатор за достъп.
(списък с параметри)
{ //изявления за изпълнение
}
Всеки метод има уникален метод за извършване на извикването на функцията. Изпълнимите изрази са във фигурни скоби. Типът връщане обяснява дали функцията връща стойност или не. Когато няма върнат тип, той се нарича void. Спецификаторът за достъп се използва за указване на достъпността на метода в приложението. Параметрите се използват за получаване или предаване на данни към метода. Може да има и методи без параметри. Параметрите могат да бъдат оценени параметри, изходни параметри или референтни параметри.
Изходните параметри се използват за предаване на резултатите обратно на извикващия метод. За целта параметърът трябва да бъде деклариран с ключовата дума out. Изходният параметър не създава ново място за съхранение. Обикновено методът връща една стойност. Но в C е възможно да се върнат две стойности от функция с помощта на изходни параметри. Вижте програмата по-долу.
приложение за пространство от имена1{
изчисляване на публичен клас{
публично празно показване (out int a, out int b){
int стойност=5;
a=стойност;
b=стойност;
a=a a;
b=bb;
}
public static void main(String args){
int стойност1=10, стойност2=20;
Изчисление cal=ново изчисление();
cal.display(изходна стойност1, изходна стойност2);
Console. ReadLine();
}
}
}
Функцията за показване се извиква от основния метод. Стойността1 и стойността две имат 10 и 20, но не се вземат в метода. Стойността на a е 25 и стойността на b също е 25 във функцията. Следователно тези стойности се връщат. Когато отпечатва value1 и value2, той няма да даде 10 и 20. Вместо това ще отпечата 25 и 25. Използвайки ключовата дума out, могат да бъдат върнати множество стойности от метода.
Какво е ref в C?
Когато предавате параметри по стойност, за всеки параметър се създава ново място за съхранение. Действителните параметри, изпратени от основната програма, не се променят. Вместо това тези стойности се копират на отделно място. Тези нови променливи копия се наричат формални параметри. Вижте кода по-долу.
приложение за пространство от имена1{
изчисляване на публичен клас{
публичен void swap(int x, int y){
int temp;
temp=x;
x=y;
y=температура;
}
public static void main(String args){
Изчисление cal=ново изчисление();
int p=2;
int q=3;
cal.swap(p, q);
Console. WriteLine(p);
Console. WriteLine(q);
Console. ReadLine();
}
}
}
Съгласно горната програма, класът Calculation има swap метод (). В основната програма се създава обект от тип Calculation. Има две стойности като p и q. Променливата p има стойност 2, а променливата q има стойност 3. Тези две стойности се предават на метода за размяна. При метода за размяна стойност 2 се копира в променлива x, а стойност 3 се копира в променлива y. С помощта на променливата temp стойностите се разменят. Обратно в основната програма, при отпечатване на p и q, стойностите не се разменят. Стойността на p все още е 2, а стойността на q е 3. Дори в метода за размяна, стойностите се разменят, но това не се отразява в основната програма.
За разлика от предаването на стойности, както по-горе, е възможно да се подават параметри по препратка. Референтната променлива е препратка към местоположението на паметта. Няма създадено ново място в паметта. Промените в метода, отразени в основната програма. В C референтните параметри се препращат чрез ключова дума ref. Вижте програмата по-долу.
приложение за пространство от имена1{
изчисляване на публичен клас{
публична размяна на невалидни (ref int x, ref int y){
int temp;
temp=x;
x=y;
y=температура;
}
public static void main(String args){
Изчисление cal=ново изчисление();
int p=2;
int q=3;
cal.swap(ref p, ref 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.
Каква е приликата между out и ref в C?
И двете са ключови думи, използвани за препращане към параметрите на метод
Каква е разликата между out и ref в C?
out vs ref в C |
|
The out е ключова дума в C, която се използва за препращане към изходен параметър. Използва се за предаване на резултатите от извикан метод към извикване на метода. | Ref е ключова дума в C, която се използва за препращане към референтен параметър. Използва се за предаване на данни от извикващ метод към извикан метод и за връщане на данни от извикания метод към извикващ метод. |
Функционалност | |
Когато използвате ключовата дума out, данните могат да бъдат предадени от извикващия метод към извикания метод. Но тези данни се изхвърлят. Използва се за предаване на резултата към извикващия метод от извикания метод. | Когато използвате ключовата дума ref, данните се предават от извикващия метод към извиквания метод и манипулираните данни се предават обратно на извикващия метод. |
Предаване на данни | |
Когато използвате ключовата дума out, данните се предават по един начин, който е извикан метод към извикващия метод. | Когато използвате ключовата дума ref, данните се предават по два начина, а именно от извикващ метод към извиквания метод и от извикан метод към извикващия метод. |
Резюме – аут срещу реф в C
Когато се извиква метод, може да е необходимо да се подадат стойностите в метода и да се върнат резултатите от метода. C има различни параметри, за да постигне това. Параметрите стойност се използват за предаване на параметри в метода по стойност. Референтните параметри се използват за предаване на параметри към метода чрез референция. Изходните параметри се използват за предаване на резултата обратно от метода. В C ключовата дума out се използва за изходни параметри, а ключовата дума ref се използва за препратка към параметри. Разликата между out и ref в C е, че out е ключова дума, използвана за препращане на изходен параметър, който се използва за предаване на резултати от извикан метод към извикващ метод, докато ref е ключова дума за препращане на референтен параметър, който се използва за предаване на данни от извикващ метод към извикан метод и за получаване на данните от извикания метод към извикващ метод.
Изтеглете PDF файла на out vs ref в C
Можете да изтеглите PDF версията на тази статия и да я използвате за офлайн цели според бележката за цитиране. Моля, изтеглете PDF версията тук: Разлика между Out и Ref в C