Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
1

Куда именно копируется значения аргумента при передачи в функцию?

07.08.2015, 18:13. Просмотров 919. Ответов 9
Метки нет (Все метки)


Куда именно копируется значения аргумента при передачи в функцию? И куда(где ) деваются эти копии в этом частном случае?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
using namespace std;
 
struct Distance{
    int feet;
    float inches;
};
void foo(Distance);
int main(){
Distance d1,d2;
cin>>d1.feet;
cin>>d1.inches;
d2.feet=24;
d2.inches=43;
foo(d1);
cout<<endl;
foo(d2);
    return 0;
}
void foo(Distance dd){
    dd.feet=10;
    dd.inches=10;
    cout<<dd.feet<<"/"<<dd.inches<<endl;    
}
Добавлено через 4 минуты
И каким образом вообще происходит это копирование!??
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.08.2015, 18:13
Ответы с готовыми решениями:

Указать значения аргумента, при которых функцию нельзя вычислить
Указать значения аргумента, при которых функцию нельзя вычислить.

Куда пропал русский язык при передачи по RS-232
Здравствуйте, подскажите пожалуйста как наделить программу возможностями передавать русский язык,...

Обьясните что и куда копируется я не пойму до конца
Почему в конце копируется только возраст, а не весь Person (и имя и возраст), и почему возвращает...

Как заносить значения аргумента в функцию
В данном случае значения аргументов уже изначально заданы, но как сделать чтобы можно было их...

9
6918 / 5983 / 2710
Регистрация: 14.04.2014
Сообщений: 25,504
07.08.2015, 18:27 2
Через стек.
1
lss
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
07.08.2015, 18:28 3
Лучший ответ Сообщение было отмечено anti-k как решение

Решение

Дейтел и Дейтел "Как программировать на С++", "Стек вызовов и активационные записи".
1
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
07.08.2015, 18:33  [ТС] 4
lss, спасибо, обязательно прочту, я как раз паралельно читаю эту книгу )) а можете хотя бы в двух словах, выходит так что если бы я сделал return dd, а затем в мэйне присвоил возвращаемое значение структ. переменной, одно и то же значение хранилось бы в двух местах!??
0
801 / 531 / 157
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
07.08.2015, 18:35 5
Лучший ответ Сообщение было отмечено anti-k как решение

Решение

anti-k, так ты же Дейтела читал пару часов назад, чего вдруг на лафоре перескачил?
1
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
07.08.2015, 18:41  [ТС] 6
Ferrari F1, )))) Мы проходим функции, мешок задач задали. Вроде все решил, но вот нормального понимания где эти переменные копируются и деваются не появилось ((. А Дейтела и Прату я читаю "для себя", паралельно.
0
lss
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
07.08.2015, 18:42 7
Цитата Сообщение от anti-k Посмотреть сообщение
одно и то же значение хранилось бы в двух местах!??
Под вторым местом, имеешь ввиду, на стеке?
0
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
07.08.2015, 18:45  [ТС] 8
lss, ну да, на стеке. Или я не правильно понимаю?
0
lss
935 / 863 / 356
Регистрация: 10.10.2012
Сообщений: 2,706
07.08.2015, 18:47 9
Лучший ответ Сообщение было отмечено anti-k как решение

Решение

При выходе из функции, указатель вершины стека возвращается туда, где он был до вызова функции, поэтому данные на стеке, передаваемые в функцию, оказываются в области стека считающейся свободной.

Добавлено через 1 минуту
Лучше почитай у Дейтелов, том всё подробно, и с картинками, расписано.
1
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
07.08.2015, 18:48  [ТС] 10
lss, спасибо!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.08.2015, 18:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Почему при присваивании значения некоторым объектам ссылочного типа копируется не ССЫЛКА, а само значение?
Здравствуйте! Пытаюсь докопаться до сути ссылочных и значимых типов данных. Во многих источниках...

Реализация передачи значения переменной по указателю в подпрограмму(функцию)
Вопрос собственно заключается в том ,как с помощью указателя передать в подпрограмму определенное...

Как правильно указать путь, куда копируется изображение в move_uploaded_file
установил денвер исполняемый скрипт находится в каталоге...

Исследовать поведение функции при изменении аргумента а от начального значения а0, до конечного значения аk
Разработать информационную технологию, позволяющую исследовать поведение функции при изменении...

Запись значения по указателю, переданному в качестве аргумента в функцию
Всем привет! Помогите плиз с проблемкой, либо скажите что это не реально)) Добавлено через 2...

Протабулировать функцию. Значения аргумента и функции записать в массивы X и Y
Задача такая. Нужно вычислить значение функции A*x^2+B*x+C от Xmin до Xmax. Значения аргумента и...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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