![]() |
|
Модераторы: xvr |
![]()
|
|
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
Объясните пожалуйста, все разница между
char a[10]; и char* a; В чем их отличия и чем приимущества... перечитал несколько статей, но так и не понял чем же пользоваться в какой ситуации... Очень прошу вас помочь, так как совсем запутался... |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
admsasha, разница во всём.
Массив с 10-ю элементами типа char. Указатель на char. Вот пример:
Добавлено @ 14:32 А вообще, это есть в любой книге по С/С++, причём в самом начале. Добавлено @ 14:33 admsasha, у меня в свою очередь 2 вопроса: при чём здесь вектор? при чём здесь C/C++: Программирование под Unix/Linux? |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
Да, есть.... но чего то я не понял нечего... точнее запутался... Опечатался, вот только что хотел поменять название... но раз ответили уже... На всякий случай... Это сообщение отредактировал(а) admsasha - 18.1.2007, 14:44 |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 4 Всего: 317 |
1-й случай используется когда ты знаешь какой кусок памяти тебе понадобится до запуска программы. 2-й случай - когда аллокация происходит динамически, или когда изпользуется уже аллоцированный адрес. в первом случае всегда a1 указывает на валидный регион памяти, с неизвестными значениями. во втором a2 может держать значение невалидного адреса, и при обращении по этому адресу произойдёт ошибка доступа к памяти
пока. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
bilbobagginz, если я получаю строку из какого то ввода, из файла и т.д. т.е. точную длину незнаю, то в этом случае лучше всего использовать "указатель на char" ?
|
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
admsasha, кничи тебе в помощь.
Строки в Си ограничены нулём. Поэтому ты спокойно можешь найти её конец. a) Ты читаешь с ввода посимвольно: читай пока не встретишь конец строки. б) Получаешь сразу строку с помощью библиотечно функции. Вызови strlen и получишь длину строки. |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
powerfox, Вопрос заключался не как это сделать,а в правильности выбора...
Это сообщение отредактировал(а) admsasha - 18.1.2007, 15:18 |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
||||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
||||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
admsasha, да.
|
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
powerfox, char* line ?
|
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
Учитывая объявление функции, то да. Но и char line[N] тоже должно работать, так как при вызове функции будет неявное преобразование в char*.
|
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
Еще есть какое то
std::string s = "something"; это что ? Добавлено @ 16:40 Сравнение,вырезка, определение длины, это уже будут другие функции ? strcmp,strlen и.д. уже не подходят... |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
Книгу по С++ тебе в руки. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
нет, если ты память не динамически выделяешь (посредством malloc/calloc,...) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |