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

Указатели и ссылки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В двумерном массиве хранится информация о зарплате 18 сотрудников http://www.cyberforum.ru/cpp-beginners/thread1159630.html
В двумерном массиве хранится информация о зарплате 18 сотрудников за каждый день (в первом столбце за пятое января, за втором). Определить среднюю зарплату плату.
C++ Не правильно работает sin() Здравствуйте, есть задача: найти площадь треугольника разными способами. Во втором способе не правильно вычисляется синус угла, иногда выдает отрицательные значения. Как исправить? #include <iostream.h> #include <conio.h> #include <math.h> double ploschad_1(double, double); double ploschad_2(double, double, double); double ploschad_3(double, double, double); http://www.cyberforum.ru/cpp-beginners/thread1159624.html
Бинарное дерево C++
Помогите пожалуйста с программой. Нужно сделать обход, слева и справа(функции get_left и get_right), желательно обход в глубину. И реализовать «подъем» на верхний уровень(функция root), т.е. получение корня. #pragma once #include "stdafx.h" #include <iostream> using namespace std;
C++ Определить сумму всех элементов второго столбца двумерного массива
Дан двумерный массив. Определить: сумму всех элементов второго столбца элементов; сумму всех элементов k-той строки элемента.
C++ Вывод мусора после отработки функции http://www.cyberforum.ru/cpp-beginners/thread1159616.html
#include <iostream> #include <conio.h> void Binary(char *&,int); using namespace std; int main() { int number; char * str = new char; cin >> number; Binary(str, number);
C++ Классы "Пара чисел" и "Прямоугольный треугольник" Задача: Базовый класс: ПАРА_ЧИСЕЛ (PAIR) Первое_число (first) - int Второе_число (second) – int Определить методы изменения полей и вычисления произведения чисел. Создать производный класс ПРЯМОУГОЛЬНЫЙ_ТРЕУГОЛЬНИК (RIGHTANGLED), с полями-катетами. Определить метод вычисления гипотенузы. И собственно код подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6419 / 3058 / 302
Регистрация: 04.12.2011
Сообщений: 8,327
Записей в блоге: 3
28.04.2014, 14:24     Указатели и ссылки
Rioter, рад если помог. А если запутал, то не намеренно. Вот еще немного путаницы напоследок:
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
35
36
37
38
39
40
41
#include <iostream>
using namespace std;
int main (){
int a = 5;
int &b = a;//Ok b ссылается на a
int &c = b;//c ссылается на b? не-а) c ссылается на a
cout<<c;//5
//это всё равно что int &c = a;
//то есть синтаксически "ссылка на ссылку" это ссылка на то на что ссылается ссылка
 
//С указателями, "указатель на указатель" и синтаксически и семантически значит одно и тоже:
int *pa=&a;//указатель хранящий адрес а
int **ppa=&pa;//указатель хранящий адрес указателя на а
 
//важно ещё то что можно написать
int *ptr_a;//переменная содержит случайное значение и к ней не стоит обращаться для чтения
//и потом
ptr_a=&a;//Ok занесли адрес
 
//а для ссылки запись
// int &ref_a; // не скомпилируется
//так как прсевдоним без имени неимеет смысла и поэтому ссылку можно объявить только
//совместно с инициализацией:
int &ref_a=a;
//Причём константную ссылку можно инициализировать литералом:
const int &ref_const=123;//
 
//а указатель на константу нет
//const int *p_const = 123;
//а вот так можно, но 
const int *ptr_hex_const =(int*)0xA123; 
int *ptr_hex =(int*)0xB123;
//забудьте последние 2 примера - это пригодится надолго (забыть в смысле))
 
//остально может пригодиться для понимания передачи аргументов в функции
//например того что указатель-параметр инициализируется адресом из указателя-аргумента (копирует его)
//а ссылка-параметр "инициализируется" не ссылкой, а значением
//на который ссылается ссылка-аргумент (фактически нет не инициализайии ни копирования)
system("pause");
return 0;
}
Потом ещё выделение памяти и массивы. Указатели на char. Указатели на сложные типы (структуры/классы). Укзатели на полиморфные объекты. И... приведения. Везде.
Так что это хорошо, что основательно вдумываетесь. Не торопитесь.
Придется много раз возвращаться на новом уровне и всегда будет интересно. Вот почему так важно сначала всё правильно разобрать. Удачи!
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru