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

Как пользоваться указателями строк? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести полуокружности, повторяя по два раза с каждой стороны до конца цикла (графическое задание) http://www.cyberforum.ru/cpp-beginners/thread1633112.html
Доброй ночи, ребят следующий код выводит полуокружности на левой стороне, в задании нужно чтобы они полуокружности чередовались по два раза. Сначала нужно чтобы вывелось два полукруга на левой...
C++ Задача: Манхэттенский полицейский Добрый день, уже несколько дней с друзьями пытаемся решить задачу, которая явно использует какой-то простой алгоритм. Буду рад любым вашим намекам или соображениям: Задача: Недавно Билл... http://www.cyberforum.ru/cpp-beginners/thread1633097.html
C++ Найти значения на выходе
Здравствуйте! Помогите найти значения на выходе. void F(int n, char a, char b, char c) { if (n>0) { F(n-1,b,c,a); printf("%d %c %c %c", n, a, b, c); } }
Найти числа Фибоначчи, которые предшествуют введенному числу C++
Найти числа Фибоначчи, которые предшествуют введенному числу
C++ Найти эквивалентное значение http://www.cyberforum.ru/cpp-beginners/thread1633068.html
Здравствуйте! Подскажите эквивалентен значение к a 1) **(a) 2) *(a+I) 3) *(&(a+I)) 4) *(&(a)) 5) ни один из вариантов
C++ Найти эквивалентное значение Здравствуйте! Подскажите эквивалентен значение к a 1) **(a) 2) *(a+I) 3) *(&(a+I)) 4) *(&(a)) 5) ни один из вариантов подробнее

Показать сообщение отдельно
avgoor
962 / 596 / 130
Регистрация: 05.12.2015
Сообщений: 1,681
09.01.2016, 14:30
Цитата Сообщение от артист Посмотреть сообщение
А что такое разыменование, не инициализированный указатель не понял, и не понятно зачем нужны эти указатели, в каких случаях их применять.
Программа - это набор операций с какими-то сущностями. Чтобы оперировать с сущностью надо:
1) Знать ее тип, например, int. Но int – очень сложно, пусть тип будет «лопата». Тип «лопата» - это просто слово, которым мы обозначаем то, чем можно копать, т.е. чтобы копать нам нужна:
2) конкретная лопата (объект класса «лопата» или переменная типа «лопата», если «лопата» - встроенный тип). Например,

«лопата лопата_джамшута=совковая_лопата;».

Здесь мы определили объект «лопата_джамшута» класса «лопата» и инициализировали его значением «совковая лопата».
Теперь мы можем копать. Но иногда нам нужно другое имя для нашей лопаты – это будет ссылка:

«лопата& лопата_равшана=лопата_джамшута;».

Теперь лопата_джамшута и лопата_равшана два разных имени, обозначающих одну и ту же лопату.
Теперь об указателях. Указатель - это новая сущность, в отличие от ссылки. Определим ее:

«лопата *подноситель_лопат=&лопата_джамшута;».

Здесь мы создали указатель на лопату по имени «подноситель_лопат». & в выражении «&лопата_джамшута» - операция взятия адреса, т.е. сказать, где лежит лопата_джамшута. Теперь если подносителю лопат сказать принести лопату – он принесет лопату_джамшута сделать это можно с помощью операции разыменования – «*». Таким образом сделать лопату для насяльника, такую же как у джамшута можно с помощью:

«лопата лопата_насяльника=*подноситель_лопат».

Здесь мы создали новую лопату и инициализировали ее той лопатой, которую принес подноситель лопат.
Т.к. указатель – это сущность, то его можно настроить на другую лопату (в отличие от ссылки): подноситель_лопат++; Теперь он принесет лопату, которая лежит в шкафу после лопаты Джамшута и т.д. (подноситель_лопат[10],….) Но, если его не инициализировать и сказать принести лопату – неизвестно что он принесет и к чему это приведет (например он случайно попробует без спроса принести лопату Виктора Марьяновича, а он наказывает, жестоко наказывает).
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.