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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
#1

Ссылки и указатели на функцию - C++

25.03.2014, 12:15. Просмотров 380. Ответов 12
Метки нет (Все метки)

Если передавать значение в функцию через указатель и ссылку,то в обоих случаях передаётся адрес,а не значение?

И ещё:

C++
1
2
3
4
5
int * function1(int a)
{
a=10;
return a;
}
C++
1
2
3
4
5
int * function2(int a)
{
a=10;
return & a;
}
Почему первая функция верна,хотя вроде бы нужно указывать оператор адресации?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2014, 12:15     Ссылки и указатели на функцию
Посмотрите здесь:

Передача в функцию - ссылки, указатели, константы - C++
Вот программа: #include <iostream> void fun(int &rhs) { rhs++; } int main()

Как лучше передавать значения в функцию? Ссылки vs указатели - C++
Всем доброго времени суток. Уважаемые гуру, подскажите пожалуйста, как лучше передавать значения в функцию, через указатель или ссылку? И...

Ссылки или указатели (Написать функцию , которая вычисляет гипотенузу, площадь и периметр прямоугольного треугольника) - C++
Написать функцию , которая вычисляет гипотенузу(корень квадратный из суммы квадратов катетов) , площадь и периметр прямоугольного...

Ссылки и указатели - C++
Всем привет. Совсем запутался с ссылками и указателями. Помогите решать задачку: Функция принимает два аргумента, число с плавающей...

Указатели и ссылки c++ - C++
Здравствуйте! Не могли бы вы объяснить как можно использовать ссылки и указатели c++ на практике? Я не пойму для чего они нужны!

Ссылки и указатели - C++
Добрый день, не могу понять чем помогают при использовании указатели и ссылки? Есть код на c++ #progma once class well { ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6539 / 5005 / 461
Регистрация: 14.02.2011
Сообщений: 16,648
25.03.2014, 12:18     Ссылки и указатели на функцию #2
Цитата Сообщение от Игорюня Посмотреть сообщение
Почему первая функция верна,
она не верна
просто размер указателя и размер int совпадают
в результате она вернет указатель на адрес 10
а что там лежит, кто знает
aLarman
641 / 562 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
25.03.2014, 12:19     Ссылки и указатели на функцию #3
Цитата Сообщение от Игорюня Посмотреть сообщение
Почему первая функция верна,хотя вроде бы нужно указывать оператор адресации?
видимо происходит неявное преобразование из int в указатель на int
ValeryS
Модератор
6539 / 5005 / 461
Регистрация: 14.02.2011
Сообщений: 16,648
25.03.2014, 12:20     Ссылки и указатели на функцию #4
да и вторая не верна
возвращаешь адрес локальной переменной, к чему это приведет ? неизвестно
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
25.03.2014, 12:21     Ссылки и указатели на функцию #5
Цитата Сообщение от Игорюня Посмотреть сообщение
то в обоих случаях передаётся адрес,а не значение?
да
Цитата Сообщение от Игорюня Посмотреть сообщение
Почему первая функция верна
Что значит "функция верна"? Сформулируй мысль.
Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
25.03.2014, 12:24  [ТС]     Ссылки и указатели на функцию #6
На неё компилятор не ругается и в книге есть аналог.
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
25.03.2014, 12:28     Ссылки и указатели на функцию #7
Цитата Сообщение от Игорюня Посмотреть сообщение
На неё компилятор не ругается
Задай ему правильные опции - должен заругаться.
ValeryS
Модератор
6539 / 5005 / 461
Регистрация: 14.02.2011
Сообщений: 16,648
25.03.2014, 12:30     Ссылки и указатели на функцию #8
Цитата Сообщение от Игорюня Посмотреть сообщение
На неё компилятор не ругается
есть много на что компилятор не ругается, но ведет себя не так как надо
Цитата Сообщение от Игорюня Посмотреть сообщение
книге есть аналог.
что за книга? дословно цитату
Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
25.03.2014, 13:39  [ТС]     Ссылки и указатели на функцию #9
C++
1
2
3
4
5
int * function(int * a)
{
    *a=10;
    return  a;
}
Затупил.Функция приняла указатель поэтому адресация не нужна.Не придал значения по началу.

Добавлено через 1 час 6 минут
Vourhey, а адреса как и значения помещаются в стеки при передачи в функцию?
ValeryS
Модератор
6539 / 5005 / 461
Регистрация: 14.02.2011
Сообщений: 16,648
25.03.2014, 13:42     Ссылки и указатели на функцию #10
Цитата Сообщение от Игорюня Посмотреть сообщение
Vourhey, а адреса как и значения помещаются в стеки при передачи в функцию?
и да и нет
помешаются в стек, но техника несколько другая
это же тоже аргументы
вообще не правильно говорить в стек, правильно в автоматическую память, некоторые компиляторы, при определенных условиях, загоняют аргументы не в стек а в регистры
Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
25.03.2014, 13:52  [ТС]     Ссылки и указатели на функцию #11
Просто пытаюсь понять,каким образом экономится память при передаче через адрес.Я имею ввиду функции принимающие и возвращающие стандартные,а не пользовательские типы,где используется копировщик и деструктор при передаче и возвращении как значение.
ValeryS
Модератор
6539 / 5005 / 461
Регистрация: 14.02.2011
Сообщений: 16,648
25.03.2014, 13:55     Ссылки и указатели на функцию #12
Цитата Сообщение от Игорюня Посмотреть сообщение
Просто пытаюсь понять,каким образом экономится память при передаче через адрес.
в общем случае никак
экономится только если передавать большие блоки( например структуры),где указатель меньше данных, а например при передаче char даже может увеличится
главное при передаче через указатели или ссылки, что работаешь с самой переменной, а не с копией
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2014, 13:59     Ссылки и указатели на функцию
Еще ссылки по теме:

Указатели и ссылки [С++] - C++
Всем привет. я тут программу делаю. Цель: определить,принадлежит ли точка заданному промежутку(а точнее лежит внутри или снаружи фигуры)....

Ссылки и указатели - C++
Добрый день. Возможно было. В чем существенная разница между передачей данных в функцию по ссылке или указателю. В каких случаях вы бы...

Указатели и ссылки - C++
Экспериментируя с указателями пришел к вот таким выводам: int a; //переменная int *b; //указатель int &c = a //ссылка на <a> ...

Указатели и ссылки - C++
Используя вместо самой переменной указатель на нее написать программу в соответствии с заданием: Вычислить y = cos|x3-x2|.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
25.03.2014, 13:59     Ссылки и указатели на функцию #13
Игорюня, Не увлекайтесь этим понапрасну, а вообще зайдите вот сюда http://www.cyberforum.ru/blogs/78200/blog2120.html
Yandex
Объявления
25.03.2014, 13:59     Ссылки и указатели на функцию
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru