ли эта линиянеявной буквы C++
char chValue = max('a', '6'); // returns 'a'
int max(int nX, int nY)
{
return (nX > nY) ? nX : nY;
}
бросил письмо 'a'
его ASCII эквивалентное число затем сравнить его с целым числом?
ли эта линиянеявной буквы C++
char chValue = max('a', '6'); // returns 'a'
int max(int nX, int nY)
{
return (nX > nY) ? nX : nY;
}
бросил письмо 'a'
его ASCII эквивалентное число затем сравнить его с целым числом?
Да, потому что max
это функция, которая принимает два int
S в качестве аргументов, полукокс a
получит implicitly converted в качестве int
, а затем получить передается в качестве аргумента функции.
Yup он принимает 2 целых числа и возвращает самый большой, и спасибо –
@MekacherAnis рад, что я смог помочь. Пожалуйста, подумайте о том, чтобы принять ответ, если он решил проблему/ответил на вопрос. – blazs
Нет такой вещи, как «неявный бросок». Листинг - это * явное * преобразование. –
Не совсем.
Символьные константы 'a'
и '6'
имеют тип char
, который является интегральным типом. Они уже обозначают целочисленные значения и, предполагая реализацию на основе ASCII, обозначают значения ASCII этих символов. Это определяется во время компиляции.
Функция max
принимает два аргумента int
и возвращает результат int
. 'a'
и '6'
: неявно преобразованный от char
до int
. (Это преобразование дает значение с другим представлением, но с тем же значением.) Листинг представляет собой явное преобразование, представленное оператором литологии C-стиля (как в (int)'a'
), либо с одним из операторов-операторов, выполняющих C++ (as в static_cast<int>('a')
. Поскольку int
и char
являются неотъемлемыми типа, не литая не нужно здесь.
(в C, символьные константы имеют тип int
, и не будет никаких преобразований вообще.)
int
результат, возвращаемый max()
, затем неявно конвертируется из int
в char
, и результат сохраняется в chValue
.
C++ фактически не требует кодирования символов в ASCII. Например, мэйнфреймы IBM используют другой набор символов, называемый EBCDIC. (В EBCDIC сравнение будет идти другим путем, а chValue
будет '6'
, а не 'a'
.)
Опубликовать соответствующий код - что такое объявление 'max'? – MSalters
@MSalters alright –