Форум программистов, компьютерный форум CyberForum.ru

Передача параметров в функцию по значению, по ссылке или по указателю - C++

Восстановить пароль Регистрация
 
Vegas_I
1 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 103
19.01.2014, 19:50     Передача параметров в функцию по значению, по ссылке или по указателю #1
Передача параметров в функцию по значению, по ссылке или по указателю.

Чем отличаются эти 3 способа. И, если не сложно, привести пример каждого способа.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2014, 19:50     Передача параметров в функцию по значению, по ссылке или по указателю
Посмотрите здесь:

Помогите разобраться(С)Cпособы передачи аргументов в вызываемые функции: по значению, указателю и ссылке C++
Передача параметров функции по значению, ссылке и указателю C++
Передача по указателю и по ссылке C++
C++ Передача по ссылке или указателю?
Передача в функцию по ссылке или указателю C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
19.01.2014, 19:59     Передача параметров в функцию по значению, по ссылке или по указателю #2
Тут, например, можно почитать)
http://kvodo.ru/urok-6-2-funktsii-pe...or-return.html
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
19.01.2014, 20:16     Передача параметров в функцию по значению, по ссылке или по указателю #3
Vegas_I,
Цитата Сообщение от Vegas_I Посмотреть сообщение
по указателю
Передается адрес переменной, а значит может быть использована операция разыменования для доступа к значению.
Цитата Сообщение от Vegas_I Посмотреть сообщение
по ссылке
будешь работать напрямую с переменной. Все изменения которые произойдут в функции будет и вне ее.
Цитата Сообщение от Vegas_I Посмотреть сообщение
по значению
в функции ты будешь работать с фактической копией аргумента, после выхода из функции значение переменной останется прежний

Добавлено через 7 минут
Vegas_I, Вот примеры
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//передача по значениею
void Swap(int a,int b)
{
    int temp = a;
    a = b;
    b = temp;
}
//передача по ссылке
void Swap(int &a,int &b)
{
    int temp = a;
    a = b;
    b = temp;
}
//передача по указателю
void Swap(int *a,int *b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}
_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
19.01.2014, 20:20     Передача параметров в функцию по значению, по ссылке или по указателю #4
Но только в функцию такого вида Swap(int *a,int *b) можно передать только указатель!
то есть переменные, которые объявлены так: int *a,*b;

ну или передавать так: Swap(&a,&b)
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
19.01.2014, 20:20     Передача параметров в функцию по значению, по ссылке или по указателю #5
В книгах это написано лучше, чем тебе тут своими словами на форуме можно попытаться объяснить. И вообще, если не знаешь, что такое ссылки и указатели в общем, какой смысл тебе объяснять тебе частные случаи их применения?!
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11804 / 6783 / 767
Регистрация: 27.09.2012
Сообщений: 16,838
Записей в блоге: 2
Завершенные тесты: 1
19.01.2014, 20:47     Передача параметров в функцию по значению, по ссылке или по указателю #6
В любом случае происходит копирование аргумента, будь то целевой объект или указатель, так что в функции Вы всегда работаете с копией.
В случае передачи ссылки просто скрывается вся работа с копией указателя
Yandex
Объявления
19.01.2014, 20:47     Передача параметров в функцию по значению, по ссылке или по указателю
Ответ Создать тему
Опции темы

Текущее время: 16:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru