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