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

Понимание адреса, ссылки и указателя - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Теория про new http://www.cyberforum.ru/cpp-beginners/thread591164.html
Помогите пожалуйста понять как работает new. При перегрузке требуется, чтобы у функции был параметр size_t, причем нельзя присваивать ему default значение. Объясните, что является таким параметром в данном вызове: int* a = new int; Или это тоже самое, что и int* a = new int; И как тогда выглядит вызов такой перегруженной функци: void* operator new(const size_t& size, const int& obj);
C++ Компилятор ругается на static переменные Есть класс: class Node{ public: Node(void) : data(0), next(0), prev(0), first(0), last(0), size(0){} Node(const _My& Val){ data = new _My(Val); size++; } ~Node(void){} _My* data; http://www.cyberforum.ru/cpp-beginners/thread591160.html
Определить, какой элемент двумерного динамического массива больше: расположен в левом верхнем или в верхнем правом углу C++
Определить а) какой элемент двумерного массива больше: расположен в левом верхнем или в верхнем правом углу; б) какой элемент двумерного массива меньше: расположенный в нижнем правом или в верхнем левом углу.
C++ Сортировка Хоара
помогите правильно вставить счетчик шагов. Насколько я понял, функция сама себя перезапускает, тоесть надо в тело функции кидать, но так получается 100+ шагов, многовато ... #include <iostream> #include <conio.h> using namespace std; int mass; int i,j,N,ns=0; int quickSortR(int* mass, int N) { i = 0, j = N; int temp, p; ns++;
C++ Удалить из стека последний элемент http://www.cyberforum.ru/cpp-beginners/thread591144.html
Информационное поле стека числовое. Удалить из стека последний елемент. Добавлено через 48 минут Вот есть стек, но он меняет местами. #include<iostream> #include<conio.h> using namespace std; struct node {
C++ Два треугольника заданы координатами своих вершин. Вычислить их площади Два треугольника заданы координатами своих вершин. Вычислить их площади по формуле S=1/2((Х2-Х1)(Y3-Y1)-(X3-X1)(Y2-Y1)) и определить, какой из них имеет большую площадь. подробнее

Показать сообщение отдельно
The_Immortal
1551 / 487 / 8
Регистрация: 04.04.2009
Сообщений: 1,891
31.05.2012, 15:12  [ТС]     Понимание адреса, ссылки и указателя
Ух, мужики, ну Вы тут и заварили

В общем, из всего, что я прочел я так и не понял, что такое ссылка.
В смысле вот это
Цитата Сообщение от taras atavin Посмотреть сообщение
Ссылка - это второе имя переменной. Вот тебя как в реале зовут? А здесь тебя зовут The_Immortal. Так сколько у тебя имён? Два уже детектед: то, которое дали при рождении и ещё The_Immortal. У человека второе имя - ник, у переменной - ссылка.
я понимаю. И, кстати, огромное спасибо, что пытаетесь донести подобными примерами - очень ценю это, т.к. действительно помогает.
Но все же без формализации в итоге никак.

У меня просто в голове не укладывается, как две переменные могут сидеть по одному адресу... Или это чисто логический прием?


Цитата Сообщение от taras atavin Посмотреть сообщение
Ссылка может быть пустой
И это также непонятно. Разве может ссылка (по своему назначению должна на что-то ссылаться) указывать на ничто?
Хотя вот указатель же необязательно инициализровать, так? Соответственно он может быть пустым почему-то...

Просто насколько я понимаю, то указатель также имеет свой адрес, правильно? Имею в виду сам по себе указатель, как переменная. И он, разумеется, не совпадает с адресом, на который этот указатель указывает.
Но вот что с ссылкой... Она своего адреса не имеет что ли... Имею в виду саму по себе ссылку.



Добавлено через 7 минут
Цитата Сообщение от taras atavin Посмотреть сообщение
Ведёт себя, как разыменованный константный указатель
Цитата Сообщение от alkagolik Посмотреть сообщение
ссылка это разыменованный указатель
А это я тоже с трудом понял, примерно вот так (задача корявая, т.к. формулировал сам):
Задача: передать переменной x значение через переменную y, используя:
а) указатель
б) ссылку
а)
C++
1
2
3
4
5
int x;
int *y;
 
y=&x;
*y=5;
б)
C++
1
2
3
4
int x;
int &y=x;
 
y=5;
Вы это имели в виду?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru