![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
hoz |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Как я понимаю тип char судя по учебникам служит для хранения символов. Прочитал кроме того Статью, и всё-таки запутался.
В статье сказано:
А дальше код:
Получается, что в массиве будет 50 элементов разером в 1 символ? Т.е. 50 символов(грубо говоря по 1-ой цифре или букве, ну или знаку разумеется каком-нить), верно? |
||||
|
|||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
Верно. Но если ты не записывал туда символы, то там будет мусор(тоже символы, но малопредсказуемые). Тип char служит для хранения данных размеров в 1 байт(не совсем точно, но для большинства систем это так). Разумеется ты можешь хранить там как символы, так и то, что не имеет для тебя символьной нагрузки, например:
Т.е. воспринимай char как тип размером в 1 байт и помни, что char, char*, char[], как правило, интерпретируются различными стандартными функциями как символ и строка(набор символов) соответственно. Но это не означает, что они могут интерпретироваться только так. Это вопрос использования. |
|||
|
||||
trinitr0 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 25.6.2013 Репутация: нет Всего: нет |
тип char - это специальный объект, знимающий один байт в памяти и способный хранить небольшие целые числа
(со знаком 'char': -128 до 127 и без 'unsigned char': 0 до 255):
эквивалтно:
|
||||
|
|||||
hoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Откуда там будет мусор то? Ведь если не инициализировать явно, то, по крайне мере, в языках программирования нулём инизиализируются переменные, НО как может быть малопредсказуемое значение то? А вот как char, char*, char[] воспринимать не как символ, а как строку для меня сложновато понять. Ведь тип в 1 байт. И изначальная трактовка использования данного типа для работы с символами. |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
Ты ошибаешься. Языки программирования не надо объединять, у каждого свои правила. C++, в общем случае, ничего нулём не инициализирует. Для подобной инициализации должны быть специальные условия(глобальные переменные и т.п.) C++ довольно низкоуровневый язык, в ассемблере вообще нет типов, есть разное количество памяти выделенное под некую сущность. C++ просто имеет имена для наиболее популярных размеров. Так char это имя для куска памяти размером в 1 байт. Так уж повелось, что он еще и представляет ASCII и поэтому, вероятно, называется char. Это просто принято хранить символы в char и интерпретировать переменные типа char как символьные, но это не правило, это просто традиция. Так как набор символов представляет собой строку, то и в C++ это так: если у тебя есть массив char(char[]), то это можно интерпретировать как строку. Тоже самое с указателем. Это сообщение отредактировал(а) vinter - 30.1.2014, 11:35 |
|||
|
||||
borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
По стандарту
Хотя, действительно, я сталкивался с одной специфической платформой, у которой sizeof( char ) равнялся 4. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
хм, то ли раньше(в редакции 2003 года) этой строчки не было, то ли я просто запутался. |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
Doc No: N1905=05-0165
Date: 2005-10-19 Пункт 5.3.3 (Sizeof). Подпункт 1. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
Точно, вспомнил, это размер байта в стандарте не определён. Спасибо за напоминание.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |