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

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

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

ссылка и пойнтер, не одно и тоже? - C++

14.11.2013, 20:47. Просмотров 262. Ответов 3
Метки нет (Все метки)

Всем доброго времени суток. Возник у меня сегодня вот такой вопрос. Есть у меня такой код
C++
1
2
3
4
5
6
    int *n = new int[2];
    cout << &n << endl;
    //cout << &n + sizeof(int) << endl;
    cout << &n[0] << endl;
    cout << &n[1] << endl;
    cout << n << endl;
Кликните здесь для просмотра всего текста
0026F97C
004FA830
004FA834
004FA830

Почему &n и &n[0] имеют разные адреса? Разве они не должны ссылатся на нулевой адресс? И почему &n + sizeof(int) прибавляет к адресу не 4 баит а 10?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 20:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ссылка и пойнтер, не одно и тоже? (C++):

Выполняет одно и тоже действие! - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { float A, B, C, S, R, K, P, CH;

Постоянно одно и тоже значение - C++
Вычислить используя проверку if П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом. ...

Инкапсуляция и сокрытие данных не одно и тоже? - C++
Вопрос:защита данных от несанкционированного доступа другими функциями называется?я ответил инкапсуляция,а в ответе сокрытие данных.Это не...

Компоновщик о ликовка программы это одно и тоже? - C++
??????

Орел-решка, всегда одно и тоже значение - C++
При компиляции каждый раз получаю ответ &quot;Решка&quot; #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { ...

Рандом выводит всегда одно и тоже число - C++
mass=rand(); всегда выводит число ниже, что делать? -842150451

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Max Dark
шКодер самоучка
1825 / 1627 / 592
Регистрация: 09.10.2013
Сообщений: 3,634
Записей в блоге: 6
Завершенные тесты: 2
14.11.2013, 20:51 #2
&n это адрес переменной n
а &n[0] это адрес нулегого элемента в массиве n
по сути &n в вашем примере имеет тип int**
а &n[0] имеет тип int*
1
Croessmah
Эксперт CЭксперт С++
13205 / 7476 / 839
Регистрация: 27.09.2012
Сообщений: 18,374
Записей в блоге: 3
Завершенные тесты: 1
14.11.2013, 20:52 #3
Цитата Сообщение от xvivax Посмотреть сообщение
Почему &n и &n[0]
Указатель это тоже переменная и она должна где то храниться.
&n[0] - это & * ( n + 0 ), то бишь n ( адрес первого элемента )
&n - адрес самого указателя (адрес где хранится переменная n)
1
xvivax
1 / 1 / 0
Регистрация: 07.09.2013
Сообщений: 25
14.11.2013, 21:23  [ТС] #4
Спасибо, все стало на свой места
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2013, 21:23
Привет! Вот еще темы с ответами:

Нюансы синтаксиса: #pragma once и ifndef define endif это одно и тоже? - C++
Я недопонял #pragma once и ifndef define endif это одной и тоже?

Программа всегда выводит одно и тоже значение при разных вводимых данных - C++
Не думаю, что дело в коде, но значение всегда выводилось n = 2 и pos = 2. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Функция рандом. Как заставить чтоб одно и тоже число не сгенерировал больше 4 раза - C++
Привет всем. Я пишу карточную игру(ну пытаюсь написать :pardon: ) белот. В игре 4 игроков. Я решил сделать так, создать матрицу 8х9. 00...

long double и double в MSVC 12 одно и тоже, нужна информация,желательно быстрей - C++
Здравствуйте все знают что в VC long double и double одно и тоже, да и при простой проверке это легко выясняется, но нужна информация от...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.11.2013, 21:23
Ответ Создать тему
Опции темы

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