|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.09.2013, 16:06 | #1 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
Помогите разобрать программу с указателями и массивами
Программа
В строках 26, 28 мы создаем массивы? С помощю getline мы вводим строку. И о чудо! я вижу, что теперь в массиве не 225 символов, а столько, сколько я вводил. bool GetWord(char* string, char* word, int& wordOffset) указатели на массив? int& нну забыл, и не сображу, это что? cout << "string[wordOffset]: " << string[wordOffset] << endl; ( стр.63 ) выводит 284 символа, причем сначала 4 строки бог знает каких символов и тут же без перехода введённую строку. char *p1, *p2; (стр.71) самая непонятка!!!!! Это же указатель. Вот мы ег обьявили p1 = p2 = string+wordOffset; Что же в нем хранится? Указатель? почему при прямом выводе выводится не адрес, а строка? Я ожидал, что так буде вывиден cout << "p1: " << p1 << endl;адрес, а так cout << "*p1: " <<*p1 << endl; строка, однако строка выводится прямо!! Мало того, при операции p1++; из строки сначала вычитается по символу на каждый шаг!! Как это???? Офигеть!! Код:
|
25.09.2013, 18:45 | #2 |
Форумчанин
Регистрация: 22.04.2013
Сообщений: 588
|
Логика вопроса. Мы допустим обьявили переменную как ссылку, но поместили в нее не ссылку на массив, а массив.
Не так sprobuem=&buffer; а так sprobuem=buffer;. Положим, в ней лежит как-бы то ни было массив. Как мы тогда с ним работаем так p1++; сдвигая пошагово? Или проще не заморачиваться а пытаться использовать, в дальнейшем? |
25.09.2013, 22:50 | #3 |
Форумчанин
Регистрация: 09.07.2013
Сообщений: 249
|
делаем ссылку
int* ssilka; В ней мы могём покласть то нибудь объёмом в int. по идее компилятор тебе не даст туда покласть ссылку. ну да ладно. если допустим ты сделал char* mass массив и ссылку char* то вроде как присваивая ссылке значение являющееся адресом массива типа char* ssilka = &mass[0] || char* ssilka = mass || char* ssilka = &mass(если mass в ппоследнем примере не ссылка а сам массив) ты выполняеш одно и тоже действие - передавая адрес первого элемента массива и работаеш с ним как с массивом mass[i++||i--]. Если ты перемещаеш указатель mass++ или иначе - прийдётся обратно возвращать его через mass-- столько раз, сколько ты сделал ++. Я сильно не заморачивался и могу ошибаться. Если у тебя примерно такая штука char** mass получается из за ссылки в ссылке то тут работать вроде надо по хитрожопому, ето чисто предположение, я перебором искал и точно не помню как правильно, типа так: *mass[i];
do not use your brain
|
26.09.2013, 00:28 | #4 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
Что?
Код:
P.S - сообщение Ваше - набор каких-то бессвязных, запутанных предложений. Вряд ли автор его читать будет |
26.09.2013, 01:07 | #5 | |
Форумчанин
Регистрация: 09.07.2013
Сообщений: 249
|
Цитата:
Так в чём проблема, напиши свой вариант ответа.
do not use your brain
|
|
26.09.2013, 11:31 | #6 | |
Форумчанин
Регистрация: 24.04.2012
Сообщений: 300
|
Цитата:
Помог? Оставляем отзыв =)
|
|
26.09.2013, 13:08 | #7 |
Форумчанин
Регистрация: 09.07.2013
Сообщений: 249
|
Я тя от всей души бешано поздравляю, а теперь цитируй из спецификации где это описывается чтобы оправдать свои слова перед вопрошавшим.
do not use your brain
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разобрать программу c++ v6.0 | thedarklord | Общие вопросы C/C++ | 2 | 16.04.2013 15:33 |
разобрать программу | patrik14 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 19.12.2012 05:08 |
“Иследование работы с указателями и массивами ” | saammy | Общие вопросы C/C++ | 1 | 13.12.2010 22:38 |
работы с указателями и массивами... | Катюшенька | Помощь студентам | 21 | 24.01.2009 12:17 |
Разобрать программу | DarkDeivel | Общие вопросы Delphi | 13 | 21.09.2008 14:17 |