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

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

Восстановить пароль Регистрация
 
Aliru777
0 / 0 / 0
Регистрация: 03.11.2011
Сообщений: 71
17.07.2012, 19:14     Передача по значению и по адрессу #1
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)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AAA-
13 / 13 / 1
Регистрация: 14.02.2012
Сообщений: 46
17.07.2012, 19:38     Передача по значению и по адрессу #2
в одном потоке стоят наверно
отдельно переменную выведи и потом после функции будет 0 1 0
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 1
17.07.2012, 19:57     Передача по значению и по адрессу #3
Порядок вычисления выражений в пределах одного оператора не регламентирован.
Компилятор сам его определяет.
В данном случае получилось, что вычисления идут справа-налево.
Вычислился правый ноль(formall=0), потом вызвалась функция formal, которая изменила
переменную formall=1, а потом вычислилась левая единичка (formall=1).
Aliru777
0 / 0 / 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
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.07.2012, 01:30     Передача по значению и по адрессу #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Aliru777, это не поток. Есть такая тема:"Точки следования". Вот ссылка для начала:http://alenacpp.blogspot.com/2005/11...ce-points.html
Aliru777
0 / 0 / 0
Регистрация: 03.11.2011
Сообщений: 71
20.07.2012, 20:02  [ТС]     Передача по значению и по адрессу #7
О,вот это прекрастный ответ!
Спасибо!
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 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
0 / 0 / 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++ Передача по значению
C++ Передача fstream по значению
Передача параметров в функцию по значению, по ссылке и по указателю C++

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

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

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