Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Указатели, константы 
:(
    Опции темы
tofreesky
Дата 30.6.2010, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



char *F = "123";

Когда пытаюсь изменить в строке символ - ошибка, из за того что строка доступна только для чтения.
Когда пишу так

char F[] = "123";

Все нормально. Разве есть различия. Напишите как трактуется первый и второй вариант.

PM MAIL   Вверх
Игорь1024
Дата 30.6.2010, 02:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 11.5.2009
Где: Дальний Восток

Репутация: нет
Всего: нет



In first case you point to some memory area, therefore you can not change the value.
In second case you have the char array and can do everething you want.
Perhaps I made mistake in first case, but to my mind it's right.
--------------------
The God is real,unless he is declared as integer.
PM MAIL   Вверх
susanin
Дата 30.6.2010, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 587
Регистрация: 7.10.2006
Где: Санкт-Петербург

Репутация: 2
Всего: 7



Цитата(Игорь1024 @  30.6.2010,  02:31 Найти цитируемый пост)
In first case you point to some memory area, therefore you can not change the value.

так ведь данные то в этом участке памяти неконстантные...почему же тогда не получается изменить содержимое этого участка памяти?
PM MAIL   Вверх
mes
Дата 30.6.2010, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(susanin @  30.6.2010,  08:58 Найти цитируемый пост)
так ведь данные то в этом участке памяти неконстантные.

из за наследия С.. на самом деле запись должна выглядить  так :
const char * = ... 

пользуйте поиск, тема не раз обсуждалась.. 


--------------------
PM MAIL WWW   Вверх
Леопольд
Дата 30.6.2010, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 3
Всего: 13



susanin, надо включать максимальный уровень ворнингов. Для gcc это -Wall.

codepad.org
warning: deprecated conversion from string constant to 'char*''


Это сообщение отредактировал(а) Леопольд - 30.6.2010, 14:03


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
djamshud
Дата 1.7.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 4
Всего: 39



Код

char *F = "123"; //указатель в константную область памяти
char F[] = "123";//массив (на стеке или в статик-памяти - пофиг). 


массив != указатель

>Для gcc это -Wall.

А -Wextra - это чуть более, чем максимальный?smile. А -pedantic? 

Это сообщение отредактировал(а) djamshud - 1.7.2010, 16:56


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0878 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.