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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
lana666
Сообщений: n/a
16.06.2010, 00:51     Указатели, адресная арифметика и передача аргументов функций по значению и по ссылке #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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
 
using namespace std;
 
void funct0 () {
int m = 131169;
int A = *((short *)(&m));
int B = *((short *)(&m)+1);
int C = ((short *)(&m))[0] * ((short *)(&m))[1];
cout << "A=" << A << " B=" << B << " C=" << C << endl;
}
void funct1 (int& a, int b) { a = 5; b = 10; }
void funct2 (int *p) { *p = 15; }
int funct3 (int *a, int& b) { return *a+b++; }
void main () {
int m(10), n(10);
funct0 ();
funct1 (m,n);
funct2 (&n);
m = funct3 (&m, n);
n = funct3 (&n, m);
cout << m << "   " << n << "    " << "M+N=" << (m+n) << endl;
 
_getch();
};
Добавлено через 11 минут
Больше всего интересует принцип работы funct0 , остальные функции не вызывают недоумения
объясните, пожалуйста, кто знает
спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2010, 00:51     Указатели, адресная арифметика и передача аргументов функций по значению и по ссылке
Посмотрите здесь:

Помогите разобраться(С)Cпособы передачи аргументов в вызываемые функции: по значению, указателю и ссылке C++
Передача аргументов в функции по ссылке C++
Передача параметров функции по значению, ссылке и указателю C++
C++ Передача данных по значению и по ссылке
C++ Константные указатели в качестве аргументов функций
Передача параметров в функцию по значению, по ссылке или по указателю C++
Передача параметров в функцию по значению, по ссылке и по указателю C++
Передача аргументов в функцию по ссылке и указателю C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
16.06.2010, 01:12     Указатели, адресная арифметика и передача аргументов функций по значению и по ссылке #2
C++
1
int A = *((short *)(&m));//берется ссылка на переменную &m и преобразуется в указатель с типом шорт после чего разименовывается и присваеивается
далее в том же духе (&m)+1); означает тоже самое что и [1] - то бишь сдвиг адреса. все остальное по аналогии
Yandex
Объявления
16.06.2010, 01:12     Указатели, адресная арифметика и передача аргументов функций по значению и по ссылке
Ответ Создать тему
Опции темы

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