Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
jerdeks
1 / 1 / 0
Регистрация: 19.04.2009
Сообщений: 13
#1

Что такое ' ' (апострофы)

16.08.2011, 19:52. Просмотров 3477. Ответов 22
Метки нет (Все метки)

Да, я знаю что
C++
1
char c = '1'; // == 48
А вот что такое '1234' и почему нельзя '12345'?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2011, 19:52
Ответы с готовыми решениями:

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с...

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое хэндлер файла? Что такое файловый указатель?
Что такое хэндлер файла? Что такое файловый указатель?

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите ...

Объяснить что такое "раздельная компиляция", что такое "интерфейс класса" и "реализация класса" на примере
Есть класс, содержащий объекты и конструктор. Конструктор объявляется в одном...

22
ValeryS
Модератор
7211 / 5474 / 681
Регистрация: 14.02.2011
Сообщений: 18,521
17.08.2011, 20:15 #21
Цитата Сообщение от taras atavin Посмотреть сообщение
так как 1 и 2 - два символа, а в апостроф заключается один, значением будет его код (потому '1' и равно 48, а не 1). А двум символам 1 и 2 сразу код не присвоен. Кстати, дефолтная разрядность 1 байт, 1234 туда тоже не влезет.
посмотри на моем скриншоте
если лень могу расписать
int mm='1234'
отладчик показал
mm=0x31323334
что логично
на платформе 0x386(intel)
int равен 4 байтам char одному
для чего это нужно??? например для кодировки
C++
1
2
3
4
5
char buf[]="asdfbcd";
int k='1234';
int * pbuf=(int*)&buf[0];
for(int i=0; i<sizeof(buf);i++)
  pbuf^=k
сразу предупреждаю пример не рабочий(просто идея)
во первых никто не даст писать в статику
во вторых выход за пределы массива
0
grizlik78
Эксперт С++
1983 / 1476 / 191
Регистрация: 29.05.2011
Сообщений: 3,050
17.08.2011, 20:21 #22
Цитата Сообщение от ValeryS Посмотреть сообщение
во первых никто не даст писать в статику
С чего бы?

Цитата Сообщение от ValeryS Посмотреть сообщение
во вторых выход за пределы массива
Ну это да. Хотя первые 2 итерации за границу не выходят. Но вторая уже убивает нуль-терминатор. Впрочем, в случае кодирования/шифрования 0 редко когда может считаться признаком конц строки.
0
ValeryS
Модератор
7211 / 5474 / 681
Регистрация: 14.02.2011
Сообщений: 18,521
17.08.2011, 21:13 #23
Цитата Сообщение от ValeryS Посмотреть сообщение
for(int i=0; i<sizeof(buf);i++)
косячек здесь
по правильному
C++
1
for(int i=0; i<sizeof(buf)/sizeof(int);i++)
0
17.08.2011, 21:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2011, 21:13

Кавычки и апострофы
Кавычки и апострофы в C++ работают как и в пхп? Кавычки- весь внутренний код...

Апострофы в условии
Доброго времени, вопрос следующий: Как, в условии if сравнивать символы с...

Что такое перегрузка оператора? Что у меня в коде за ошибка?
Что же я написал?? Что оно не компилится? Что значит error C2275: Superclass:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru