C++ Тип Char

Dancin' in September
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
26 Янв 2021
Сообщения
435
Реакции
44
только не бейте. объясните петухонисту че за этот ваш char, зачем он нужен, если есть string и int, в чем его преимущества и т.д. вот нигде не могу найти, чтоб нормально обьяснили.
 
в отличии от стрингов он занимает всего лишь 1 байт памяти против 8
 
в отличии от стрингов он занимает всего лишь 1 байт памяти против 8
ну так а в чем он тогда уступает? в нем можно сколько угодно символов хранить, по типу "авыфавыавыфавыаваывапргыфвпрывфрпгрпгврпыгфрпгвргпыфргпргпвргфырг"?
 
"авыфавыавыфавыаваывапргыфвпрывфрпгрпгврпыгфрпгвргпыфргпргпвргфырг"?
Попробуй объявить такой char, увидишь че будет

Char всегда заключен в одинарную ковычку ex :
char c = 'c';

Char всегда 1 байт
 
Последнее редактирование:
char тебе нужен чтобы работать с отдельными символами
 
сам по себе char не предназначен для работы со "строками", сравнивать его с std::string как минимум глупо, так как char это примитивный тип, в то время как std::string - объект

1 - char = однобайтовое представление
2 - char предназначен для хранения одиночных ascii символов в одиночных ковычках
3 - нет никакого смысла сравнивать char с int`ом и так далее. разные типы данных существуют для разных нужд.

ты можешь записать сколько хочешь символов в std::string потому что он создаёт строку и выделяет ей память динамически, в хипе, в то время как создав статический массив char`ов, ты выделишь память в стеке, это не одно и то же.
 
В общем и целом annihilatorq полностью прав. Могу разве что немного дополнить, что согласно стандартам языков C и C++, char гарантированно занимает один байт, что делает его минимальной ячейкой адресации. И частенько бывает, что unsigned char используют как число размером 1 байт, ведь на уровне железа не бывает символов, всё является нулями и единицами, и всё зависит от того, как ты обрабатываешь эти данные.
 
Последнее редактирование:
Попробуй объявить такой char, увидишь че будет


char c = 'c';

Сможешь написать больше одного символа в одинарные кавычки :seemsgood:
Компилятор не будет ругаться если ты в одинарные кавычки засунешь больше 1 символа, это всего лишь явная пометка что тип данных на выходе будет равняться символьному литералу ( ЧАРУ ) , следовательно он считает на этапе компиляции только последний символ записанный тобой
 
Последнее редактирование:
Компилятор не будет ругаться если ты в одинарные кавычки засунешь больше 1 символа, это всего лишь явная пометка что тип данных на выходе будет равняться символьному литералу ( ЧАРУ ) , следовательно он считает на этапе компиляции только последний символ записанный тобой
1700827223722.png

спасибо за лекцию))
 
Интересно как делать шифрование и работать с ascii без чара
 
че за этот ваш char, зачем он нужен, если есть string и int
Плюсы это строготипизированный язык, поэтому для начала необходимо знать типы данных.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Вкратце, char зачастую используют для описания одного символа из ascii таблицы, т.е. одну букву латинского алфавита.
int как и char является знаковым целочисленным типом, но может хранить гораздо большее число, его используют просто для вычислений.
std::string же это готовый контейнер с памятью, который юзают для хранения строки, под капотом он как раз выделяет массив из char.
 
спасибо всем
 
Назад
Сверху Снизу