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

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

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

Адреса элементов массивов - C++

13.03.2013, 02:14. Просмотров 292. Ответов 4
Метки нет (Все метки)

Добрый вечер.

Никак не могу понять зависимость типа переменной массивов и вывода адресов.

Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
int main ()
{
    char str[20] = "I love you";
    char dfg[20] = {'I', ' ', 'l', 'o', 'v', 'e', ' ', 'y', 'o', 'u'};
    int wer[20] = {3, 54, 43, 23};
    
    cout << &str[3] << '\n';
    cout << &dfg[3] << '\n';
    cout << &wer[3] << '\n';
    
    return 0;
}
Вывод:

C++
1
2
3
ove you
ove you
0x7fff5c95ea64
В двух первых случаях массивы типа char инициализированы двумя способами. Почему для них не отдаются адреса?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2013, 02:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Адреса элементов массивов (C++):

Объявить массив не более чем 15 элементов. Вывести обратные по модулю величины и проверить изменились ли адреса элементов этих двух массивов. - C++
Объявить массив не более чем 15 элементов. Вывести обратные по модулю величины и проверить изменились ли адреса элементов этих двух...

Сформировать массив из элементов исходных массивов, меньших произведения последних элементов заданных массивов. - C++
Программа должна: 1)генерировать случайным образом элементы исходных массивов; 2)выполнять действия в соответствии с условием задачи; ...

Элементы массивов a и b отсортировать в порядке возрастания. Образовать из этих массивов "c" из M+N элементов - C++
1.даны массивы a и b. элементы массивов a и b отсортировать в порядке возрастания.образовать из этих массивов &quot;c&quot; из M+N элементов....

Адреса элементов структуры - C++
Помогите вывести адреса элементов структуры: Код экспериментальный, я в нем пишу все подряд, поэтому что-то может показаться странным,...

Найти адреса элементов массива - C++
\\\

Определить адреса и значения элементов массива - C++
Элементы массива определяются формулой X0=X1=1; Xk-2 + 2^1-k*Xk-1, k=2,3,...10 Требуется определить адреса и значения элементов этого...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
palva
2614 / 1836 / 263
Регистрация: 08.06.2007
Сообщений: 6,994
Записей в блоге: 4
13.03.2013, 02:23 #2
Потому что пойнтер на char для cout означает начало строки, и должна быть выведена вся строка. Пойнтер на int выводится объектом cout непосредственно как 16-ричное число.
0
Croessmah
Эксперт CЭксперт С++
13214 / 7486 / 842
Регистрация: 27.09.2012
Сообщений: 18,402
Записей в блоге: 3
Завершенные тесты: 1
13.03.2013, 02:28 #3
Особенности перегрузки оператора << для параметра char* кастуйте к void* например
0
Сетевой Боб
1 / 1 / 0
Регистрация: 01.02.2013
Сообщений: 28
13.03.2013, 02:49  [ТС] #4
Спасибо за ответы. Извиняюсь за непонятливость: всё-таки, как можно узнать адрес элемента char?
0
palva
2614 / 1836 / 263
Регистрация: 08.06.2007
Сообщений: 6,994
Записей в блоге: 4
13.03.2013, 02:58 #5
Так Croessmah ответил.
C++
1
 cout << (void*)&str[3] << '\n';
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2013, 02:58
Привет! Вот еще темы с ответами:

Почему при присваивании адреса массива не ставится знак '&' получения адреса - C++
int main() { int a = { 2, 3 }; int* b; b = a; //Почему при присваивании адреса массива не ставится знак '&amp;' получения адреса. ...

При работе с вектором изменяются адреса элементов - C++
Здравствуйте. В соответствии с правилами создаю новую тему, хотя вопрос имеет отношение к другой проблеме в этом топике. Ситуация...

Вывести значения элементов массива и их адреса в памяти - C++
Поставьте комментарии рядом с каждой строчкой :) Задача:составить программу в которой случайным образом определен массив и два...

Вывести адреса первого и последнего элементов каждой строки. - C++
Во первых я даже не знаю как из массива в 100 элементов сделать 5*25=125 или тупо дозаполнить любыми числами? Сделать надо с помощью...


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

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

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