Re: указатель на константные данные
От: achp  
Дата: 26.08.02 13:57
Оценка: 1 (1)
Здравствуйте Oleg_Kovalev, Вы писали:

OK> *sPtr++; //работает ! (изменяет исходную строку)


Так-таки и изменяет? Исходную строку? Точно ее? Или все-таки указатель?
указатель на константные данные
От: Oleg_Kovalev Россия  
Дата: 26.08.02 13:55
Оценка:
void printCharacters( const char *sPtr) // char string[] = "anything"
{
while (*sPtr != '\0') {
cout << *sPtr;
*sPtr++; //работает ! (изменяет исходную строку)
//++*sPtr; неработает !(l-value specifies const object)
++sPtr;
}
cout << endl;

}
Ты моргнул...и это уже в прошлом...
Re: указатель на константные данные
От: Bell Россия  
Дата: 26.08.02 14:21
Оценка:
Здравствуйте Oleg_Kovalev, Вы писали:


OK>void printCharacters( const char *sPtr) // char string[] = "anything"
OK>{
OK>    while (*sPtr != '\0') {
OK>        cout << *sPtr;
OK>        *sPtr++;  //работает ! (изменяет исходную строку)
OK>        //++*sPtr;  неработает !(l-value specifies const object)
OK>        ++sPtr;
OK>    }
OK>    cout << endl;
OK>    
OK>} :???:


В строке
*sPtr++;  //работает ! (изменяет исходную строку)

сначала разыменовывает указатель (результат не используется), а потом инкрементирует этот же указатель . Т.е. данные ни в коем случае не меняются. При такой реализации printCharacters будет печатать все нечетные символы исходной строки
Напиши так:
(*sPtr)++;

и получишь l-value specifies const object
Любите книгу — источник знаний (с) М.Горький
Re[2]: указатель на константные данные
От: Аноним  
Дата: 26.08.02 14:23
Оценка:
Здравствуйте achp, Вы писали:

A>Здравствуйте Oleg_Kovalev, Вы писали:


OK>> *sPtr++; //работает ! (изменяет исходную строку)


A>Так-таки и изменяет? Исходную строку? Точно ее? Или все-таки указатель?


Спасибо я уже понял что ошибочка вышла... просто я только начинаю изучать С++... а по таблице приоритетов, операция разыменования и инкремента имеют одинаковый приоритет...а про ассоциацию справа налево я забыл напроч... спасибо за нормальный ответ а не насмешку.
Re[3]: указатель на константные данные
От: achp  
Дата: 26.08.02 14:31
Оценка:
Здравствуйте Аноним, Вы писали:

А>спасибо за нормальный ответ а не насмешку.


Мне жаль, если мой ответ был воспринят как насмешка. Я не имел этого в виду. Просто, когда я нервничаю, начинаю шутить направо и налево и все невпопад .
Re[4]: указатель на константные данные
От: Oleg_Kovalev Россия  
Дата: 26.08.02 14:34
Оценка:
Здравствуйте achp, Вы писали:


A>Мне жаль, если мой ответ был воспринят как насмешка. Я не имел этого в виду. Просто, когда я нервничаю, начинаю шутить направо и налево и все невпопад .


Нет нет, я какраз рассценил ваш ответ как нормальный а не как насмешку...
Ты моргнул...и это уже в прошлом...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.