|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.11.2009, 21:23 | #1 |
Пользователь
Регистрация: 02.11.2009
Сообщений: 13
|
Салют
Салют
Перехожу с паскаля на С++ Может мне кто нибудь объяснить как работает вот эта конструкция Сколько подборок не делал не могу врубить как она пашет... a?d:c |
02.11.2009, 21:26 | #2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Код:
Код:
Код:
Код:
|
02.11.2009, 21:30 | #3 |
Пользователь
Регистрация: 02.11.2009
Сообщений: 13
|
Погодь а это число как мы можем в if пихнуть просто число
или тут работают 1 и 0 (true/falshe) |
02.11.2009, 21:32 | #4 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 525
|
проще говоря читается так
Код:
Последний раз редактировалось m0nax; 02.11.2009 в 21:37. |
02.11.2009, 21:34 | #5 |
Пользователь
Регистрация: 02.11.2009
Сообщений: 13
|
ну то есть если у нас a= 1 то работает d иначе с
а если a =2 |
02.11.2009, 21:39 | #6 | |
Форумчанин
Регистрация: 01.09.2008
Сообщений: 178
|
Цитата:
Быть радикальным - значит понять вещь в её корне. К.Маркс
|
|
02.11.2009, 21:42 | #7 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
|
02.11.2009, 21:43 | #8 |
Пользователь
Регистрация: 02.11.2009
Сообщений: 13
|
Да спасибо то я понял....
А что если a=2? тоже истина ??? Как компилироваться будет a = d ? c = b : e = f ; если a=d или a=d=1 ???? а потом если так то присвоить d к с а иначе e к f??? |
02.11.2009, 21:45 | #9 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
В Си изначально не было булевых переменных и вместо них использовались целочисленные переменные с макросами вроде:
#define TRUE 1 #define FALSE 0 В выражениях истинность переменной определяется по нулю. Если а == 0, значит ложь, иначе - истина. Таким образом, 1, 2, 3, 4 - это всё истина а ветка if (0) никогда не выполнится. Сейчас специальный тип bool ввели, но этот механизм остался. Надо проверять, но мне кажется, что из этого: a = d ? c = b : e = f ; получится такое: если d != 0, то a = c = b, иначе: a = e = f Последний раз редактировалось pu4koff; 02.11.2009 в 21:50. |
02.11.2009, 21:50 | #10 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
a = 2 - это присваивание. То есть сначала произойдёт присваивание переменной a значения 2, после чего произойдёт проверка на истинность. Естественно, что раз a теперь равна 2, то это будет истина.
a = d ? c = b : e = f; Если d не равно 0, то переменной c будет присвоено значение b, которое в свою очередь будет присвоено a, если же d - 0, то будет то же самое, но для e и f |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Салют на форме | Rusl92 | Общие вопросы Delphi | 4 | 03.12.2008 00:16 |
салют в delphi | ZhekON | Мультимедиа в Delphi | 9 | 17.12.2007 18:31 |