Форум программистов, компьютерный форум CyberForum.ru

Объясните в чем разница - C++

Восстановить пароль Регистрация
 
SAUtrade
13 / 13 / 1
Регистрация: 21.10.2012
Сообщений: 140
26.10.2012, 20:10     Объясните в чем разница #1
Здравствуйте! У меня такой вопрос в чем разница записи

C++ (Qt)
1
2
3
4
5
6
7
switch(n)
{
 case 1:
cout << end;
case 2:
cout << endl;
}
и таким вариантом
C++ (Qt)
1
2
3
4
5
6
7
switch(n)
{
 case '1':
cout << endl;
case '2':
cout << endl;
}
если есть то в каких случаях применяется та или иная форма
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2012, 20:10     Объясните в чем разница
Посмотрите здесь:

В чем разница? C++
C++ в чем разница?
Объясните в чем разница между Visual C++ и С++ и C++ Builder C++
C++ В чем разница
В чем разница C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,920
Записей в блоге: 2
Завершенные тесты: 1
26.10.2012, 20:13     Объясните в чем разница #2
1 - это число
'1' - это символ (char)
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
26.10.2012, 20:14     Объясните в чем разница #3
SAUtrade, первая - выбор по числам. Вторая - выбор по символам.
Допустим :
C++
1
2
3
4
5
6
char x = '1';
switch (x)
{
case 1 : break;
case 2 : break;
}
В данном случае switch не сделает ничего, так как номер '1' не равен 1. А если бы было case '1', то он бы попал в него
SAUtrade
13 / 13 / 1
Регистрация: 21.10.2012
Сообщений: 140
26.10.2012, 20:15  [ТС]     Объясните в чем разница #4
Спасибо)
doctor_lecter
 Аватар для doctor_lecter
279 / 152 / 8
Регистрация: 22.09.2012
Сообщений: 283
26.10.2012, 20:16     Объясните в чем разница #5
Разница в том что в первом случае n - это число, а во втором символ. Хотя в C++ char это тоже целочисленный тип, все равно 1 != '1'. '1' = 49 - ASCII код символа '1'.
prosto_lynx
 Аватар для prosto_lynx
49 / 24 / 1
Регистрация: 09.06.2008
Сообщений: 225
26.10.2012, 20:18     Объясните в чем разница #6
Разница в том, что в случае "case 1 :" n сравнивается с числом 1, а в случае "case '1' :" - n сравнивается со значением символа '1', который равен 49 (это его ASCII-код).

так же можно написать либо case 'A', либо case 65, либо case 0x41 (последний вариант - это значение символа в шестнадцатиричной системе)... - это три абсолютно аналогичных записи.
Yandex
Объявления
26.10.2012, 20:18     Объясните в чем разница
Ответ Создать тему
Опции темы

Текущее время: 08:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru