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

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

Войти
Регистрация
Восстановить пароль
 
vadim09
6 / 6 / 1
Регистрация: 04.08.2012
Сообщений: 62
#1

Объясните работу кода - C++

12.09.2013, 22:13. Просмотров 339. Ответов 5
Метки нет (Все метки)

Здравствуйте, не могу понять работу следующего кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
int main()
{
    char buff[] = "0123456789";
    char* ptr = buff;
    ptr += 5;
    cout<<1+ptr++<<endl;
    cout<<++ptr[ptr-buff-5]<<endl;
    return 0;
}
Результат :
6789
8

Добавлено через 3 минуты
Хотя нет, уже понял, почему такой результат.
НЕ понятно, почему выводятся элементы массива, а не адрес расположения в памяти?
Особенности std::cout ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2013, 22:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объясните работу кода (C++):

Объясните пожалуйста работу кода - C++
#include &lt;iostream&gt; struct A{ int data; int data2; }; int main(int argc, const char * argv) {

Объясните работу кода с перегрузкой операторов - C++
Здравствуйте Код: #include &lt;iostream&gt; using namespace std; class A { public:

Объясните работу кода с std::nested_exception - C++
привет, можете пожалуйста объяснить, почему вывод этого кода: http://en.cppreference.com/w/cpp/error/nested_exception #include...

Объясните работу кода с использованием map - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;map&gt; #include &lt;fstream&gt; using namespace std; int main() { map...

Объясните работу программы - C++
Есть программа с рекурсивной функцией, которая меняет порядок значениий в массиве наоборот. Объясните, пожалуйста, как она это делает ...

Объясните работу указателя - C++
Зарание спасибо ) Короче дело было так ): Помог мне друг в проге, работать то работает а вот на защите заали мне вопросик из кода...

5
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
12.09.2013, 22:19 #2
Цитата Сообщение от vadim09 Посмотреть сообщение
НЕ понятно, почему выводятся элементы массива, а не адрес расположения в памяти?
Особенности std::cout
Потому что указатели на массивы можно индексировать
0
kent
Нуб со стажем
36 / 34 / 2
Регистрация: 19.02.2012
Сообщений: 118
12.09.2013, 22:21 #3
Цитата Сообщение от vadim09 Посмотреть сообщение
НЕ понятно, почему выводятся элементы массива, а не адрес расположения в памяти?
Особенности std::cout ?
operator << (const char* p) в ofstream выводит нуль-терминированную строку, а не значение p.
0
vadim09
6 / 6 / 1
Регистрация: 04.08.2012
Сообщений: 62
12.09.2013, 23:26  [ТС] #4
Простите, а причем тут ofsream ?
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
13.09.2013, 01:15 #5
оператор вывода для указателей на char перегружен и предназначен для вывода строк. Это ещё с Си пошло!
puts(ptr); или printf("%s", ptr) тоже выводили строку, а не значение указателя
1
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.09.2013, 04:08 #6
Чтобы, в данном случае, вывелся адрес, а не строка, нужно привести указатель к типу void*.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2013, 04:08
Привет! Вот еще темы с ответами:

Объясните работу функции - C++
Объясните некоторые моменты из программы. Функция ReplaceKey заменяет ключ отображения map Что такое value_type(newKey,...

Объясните работу ф-ии memmove - C++
Я не понимаю как работает ф-ия memmove. Объясните пожалуйста на простом, доступном языке, как она работает.

Объясните работу указателей - C++
Не могу въехать в тему указателей в с++.Как я понял указатель это та же переменная только значением является адрес. Дали в универе код,...

Объясните работу вложенного цикла - C++
Привет всем,подскажите пожалуйста как работает данный цикл,я понимаю,что можно это &quot;задание&quot; сделать проще и без вложенного цикла,но не...


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

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

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