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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Записать все двоичные числа по порядку каждую цифру в отдельный элемент массива http://www.cyberforum.ru/cpp-beginners/thread781571.html
Дано число p - количество знаков в двоичном числе Нужно записать все двоичные числа по порядку каждую цифру в отдельный элемент массива и посчитать количество единиц в числе. Пример p=3...
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,...
C++ Возникает "прекращение работы программы" http://www.cyberforum.ru/cpp-beginners/thread781545.html
Здравствуйте. Задание: дана матрица, упорядочить каждую строку матрицы по возрастанию абсолютных величин методом пузырька. При некоторых значениях строк и столбцов почему-то возникает прекращение...
C++ Задача про год Есть такая задача. Дано число k (от 1 до 365). присвоить значение n (от 0 до 6) в зависимости от того, на какой день недели приходиться k-тый день года, учитывая то, что 1 января понедельник. Я... подробнее

Показать сообщение отдельно
abit
271 / 270 / 34
Регистрация: 03.02.2013
Сообщений: 754
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'; // отправим готовое слово в выходной поток, переведём каретку
  }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru