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

Объясните пожалуйста, как работает код. Указатели - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Записать все двоичные числа по порядку каждую цифру в отдельный элемент массива http://www.cyberforum.ru/cpp-beginners/thread781571.html
Дано число p - количество знаков в двоичном числе Нужно записать все двоичные числа по порядку каждую цифру в отдельный элемент массива и посчитать количество единиц в числе. Пример p=3 Массив А кол-во единиц в числах 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 2 1 0 0 1
C++ слияние списков помогите с написание программы!!! нужно написать программу которая объединяет два упорядоченных списка в один. Функция merge должна получать указатели на первый узел каждого списка, которые необходимо объединить и вернуть указатель на первый узел объединяемого списка!!! http://www.cyberforum.ru/cpp-beginners/thread781570.html
воспроизведение файла из ресурсов C++
Всем здравствуйте! Скажите, пожалуйста, как можно воспроизвести звук из ресурсов в visual C++?
C++ Указатель на массив символов
фрагмент кода: void putX(int x, int y, char** mass); ///////////////////////////////////// // -------- Главная часть -------- // ///////////////////////////////////// int _tmain(int argc, _TCHAR* argv) { char mass= {' '}; int x = 0, y = 0;
C++ Возникает "прекращение работы программы" http://www.cyberforum.ru/cpp-beginners/thread781545.html
Здравствуйте. Задание: дана матрица, упорядочить каждую строку матрицы по возрастанию абсолютных величин методом пузырька. При некоторых значениях строк и столбцов почему-то возникает прекращение работы программы и она не до конца все выводит. Например при 3 строках и 5 столбцах не выводится кол-во сравнений и вылезает это окно, а например при 10 строках и 9 столбцах все работает отлично. В...
C++ Задача про год Есть такая задача. Дано число k (от 1 до 365). присвоить значение n (от 0 до 6) в зависимости от того, на какой день недели приходиться k-тый день года, учитывая то, что 1 января понедельник. Я сначала подумал что можно сделать через остаток от деления. Но это будет работать до 3 января. Намекните какими способами можно ее сделать. Добавлено через 12 минут Например 3 число и все числа с... подробнее

Показать сообщение отдельно
abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
07.02.2013, 23:35     Объясните пожалуйста, как работает код. Указатели
Цитата Сообщение от delexa Посмотреть сообщение
abit,
Книга Герберт Шилдт "С++ базовый курс". Спасибо за ответ, но цель у меня не является решить задачу. Я хочу разобрать использование указателей.
ну я думаю, что указатели это не та тема, с которой надо начинать, но ладно, раз так необходимо, я понимаю... я в своё время крутил record в pascal до посинения, не понимая многого...

я тогда откину ненужные конструкции, оставлю одни операции с указателями:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  char *p, *q;        // объявляются два указателя в неизвестность
 
  p = str;             // первый из них (p) указывается на str ( str тоже указатель, только константный, т.к. указывает
                         // на одну и ту же область памяти - где храниться строка, с этого момента p есть синоним str
                         // т.е. символ p[1] соответствует str[1]
 
 
  while(*p) {       // тут делается цикл, до тех пор пока содержимое по адресу этого указателя не вернёт \0
                       //  а любая ASCIIZ строка заканчивается символом \0
    q = token;     // по аналогии закидываем в q константый указатель token
   
    while(*p!=' ' && *p) { // новый цикл... пока не дошли до пробела либо до конца строки   
      *q = *p;                 // переместим символ по адресу q в адрес p
       q++; p++;            // прибавим оба адреса, но вообще всю эту конструкцию можно заменить
                                  // на *q++ = *p++;
    }
    if(*p) p++;              // если не встретился конец строки - прибавим указатель
    *q = '\0';                // а в q кинем конец строки, т.к. слово закончено
    cout << token << '\n'; // отправим готовое слово в выходной поток, переведём каретку
  }
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru