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

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

Войти
Регистрация
Восстановить пароль
 
Aliru777
1 / 1 / 0
Регистрация: 03.11.2011
Сообщений: 71
#1

Передача по значению и по адрессу - C++

17.07.2012, 19:14. Просмотров 405. Ответов 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
25
26
27
28
29
30
31
32
33
34
// function formal actual.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include "iostream"
#include <string>
#include <conio.h>
 
using namespace std;
 
int act(int);
 
int formal(int *);
 
int _tmain(int argc, _TCHAR* argv[])
{
    int actu=0, formall=0;
    cout<<actu<<"\t"<<act(actu)<<"\t"<<actu<<endl;
    cout<<formall<<"\t"<<formal(&formall)<<"\t"<<formall<<endl;
    getch();
    return 0;
}
 
int act(int A)
{
    A=1;
    return A;
}
 
int formal(int *B)
{
    *B=1;
    return *B;
}
не могу понять вывода 2й строки
1 1 0
хотя первая вывожит нормально
0 1 0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2012, 19:14     Передача по значению и по адрессу
Посмотрите здесь:

C++ Передача данных по значению и по ссылке
C++ передача массива по значению
Передача в функцию по значению C++
Работа с функциями, возвращающими значения. Передача параметров по значению C++
Работа с функциями, возвращающими значения. Передача параметров по значению C++
«Работа с функциями, возвращающими значения. Передача параметров по значению» C++
C++ Передача по значению
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AAA-
13 / 13 / 1
Регистрация: 14.02.2012
Сообщений: 46
17.07.2012, 19:38     Передача по значению и по адрессу #2
в одном потоке стоят наверно
отдельно переменную выведи и потом после функции будет 0 1 0
zss
Модератор
Эксперт С++
 Аватар для zss
6124 / 5727 / 1852
Регистрация: 18.12.2011
Сообщений: 14,638
Завершенные тесты: 1
17.07.2012, 19:57     Передача по значению и по адрессу #3
Порядок вычисления выражений в пределах одного оператора не регламентирован.
Компилятор сам его определяет.
В данном случае получилось, что вычисления идут справа-налево.
Вычислился правый ноль(formall=0), потом вызвалась функция formal, которая изменила
переменную formall=1, а потом вычислилась левая единичка (formall=1).
Aliru777
1 / 1 / 0
Регистрация: 03.11.2011
Сообщений: 71
17.07.2012, 19:59  [ТС]     Передача по значению и по адрессу #4
а где можно почитать об этом загадочном потоке?
тк мне честно говоря уже надоело получать какие то мифические проблемы из-за непонятно чего - чего даже объяснить никто не может.имхо
AAA-
13 / 13 / 1
Регистрация: 14.02.2012
Сообщений: 46
17.07.2012, 20:03     Передача по значению и по адрессу #5
Aliru777, в теме литературы посмотри книги
ООП с++, Лафоре
к примеру
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.07.2012, 01:30     Передача по значению и по адрессу #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Aliru777, это не поток. Есть такая тема:"Точки следования". Вот ссылка для начала:http://alenacpp.blogspot.com/2005/11...ce-points.html
Aliru777
1 / 1 / 0
Регистрация: 03.11.2011
Сообщений: 71
20.07.2012, 20:02  [ТС]     Передача по значению и по адрессу #7
О,вот это прекрастный ответ!
Спасибо!
Avazart
 Аватар для Avazart
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,918
Записей в блоге: 17
20.07.2012, 21:03     Передача по значению и по адрессу #8
Ф-ция
C++
1
int act(int A)
не меняет значения переменой поэтому
C++
1
cout<<actu<<"\t"<<act(actu)<<"\t"<<actu<<endl;
Должно вывести строго
0 1 0
Добавлено через 9 минут
Во второй стройке результат не предсказуемый так как не известно когда произойдет вычисление
C++
1
formal(&formall)
Aliru777
1 / 1 / 0
Регистрация: 03.11.2011
Сообщений: 71
20.07.2012, 23:13  [ТС]     Передача по значению и по адрессу #9
я еще только начал читать предыдущую ссылку - думаю там найду.
вот это и вопрос где почитать об
Цитата Сообщение от Avazart Посмотреть сообщение
Во второй стройке результат не предсказуемый так как не известно когда произойдет вычисление
этом?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2012, 23:45     Передача по значению и по адрессу
Еще ссылки по теме:

C++ Передача fstream по значению
C++ Передача аргументов по значению
C++ Передача переменной в лямбда-функцию по значению
C++ Передача std::string по константной ссылке \ значению
C++ Передача по ссылке и по значению

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

Или воспользуйтесь поиском по форуму:
Avazart
 Аватар для Avazart
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,918
Записей в блоге: 17
20.07.2012, 23:45     Передача по значению и по адрессу #10
Ну вот буквально недавно читал об этом у Дьюхертса.
Yandex
Объявления
20.07.2012, 23:45     Передача по значению и по адрессу
Ответ Создать тему
Опции темы

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