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

Присваивание...

08.10.2009, 02:12. Просмотров 587. Ответов 6
Метки нет (Все метки)

C++
1
2
3
char f = 300;
cout << f;
system("PAUSE");
C++
1
2
3
4
char f = 300;
int s = f;
cout << f;
system("PAUSE");
Почему вывод значений отличается ? Ведь я же передавал одно и то же значение между переменными.И вообще,как в символьную переменную можно засунуть 300.

И ещё - почему при передаче в первом примере значения 999999 выдаётся символ "?" ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2009, 02:12
Ответы с готовыми решениями:

Присваивание
Как присвоить string к int? Например: Мне нужно,чтобы при выводе переменной...

Присваивание
Помогите с оператором присваивания ) class Stack { private: myString...

Присваивание =
Есть ли хоть какая-нибудь разница в следующих примерах: a = 0; b = 0; c...

Класс присваивание a=b=c
Собственно, вот код. Компилируется. Но работает не так как надо.( class Foo...

Присваивание матиц
Не могу понять, как матрице 2, присвоить элементы матрицы 1. Помогите плиз В...

6
Vourhey
Почетный модератор
6491 / 2265 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
08.10.2009, 02:14 #2
Welemir, про размерности почитай, чтобы знал, какой максимум у char и т д.
Цитата Сообщение от Welemir Посмотреть сообщение
Почему вывод значений отличается ?
потому что int обычно четыре байта, а char - один.
0
Gravity
569 / 563 / 64
Регистрация: 29.01.2009
Сообщений: 1,274
08.10.2009, 02:23 #3
Цитата Сообщение от Welemir Посмотреть сообщение
И вообще,как в символьную переменную можно засунуть 300.
Вот и компилятор не понимает, как такое возможно... У char диапазон значений -128...127, а ты втюхиваешь 300, ну значение переменной и обрубается.
0
Welemir
3 / 3 / 0
Регистрация: 26.09.2009
Сообщений: 104
08.10.2009, 02:47  [ТС] #4
Я знаю,я просто проверял.Меня интересует,что за ? выводится. Про диапазоны я наизусть знаю...

Добавлено через 5 минут
И ещё вопрос,после чего иду спать(( - int(*s) n[50] - почему это указатель на массив, а не массив указателей ? Ведь у [] приоритет выше,чем у *.
0
Vourhey
Почетный модератор
6491 / 2265 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
08.10.2009, 02:59 #5
Цитата Сообщение от Welemir Посмотреть сообщение
Про диапазоны я наизусть знаю...
Знал бы, сам бы давно посчитал.
999999 это 0x000f423f в шестандцатеричной системе. Как видно, оно нифига не поместится в char (один байт). Поэтому возьмется младший байт из int - 3f, а 3f - код символа ?

P. S. наизусть он знает...

Добавлено через 5 минут
Цитата Сообщение от Welemir Посмотреть сообщение
int(*s) n[50]
что это? Это разве скомпилится?
0
Sich_Taras
14 / 14 / 4
Регистрация: 08.10.2009
Сообщений: 114
08.10.2009, 03:14 #6
крутой бред ))
0
Patch
2336 / 492 / 22
Регистрация: 01.04.2009
Сообщений: 2,181
08.10.2009, 04:05 #7
мдя... вот так и рождаются шедевры...
что курил?
0
08.10.2009, 04:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2009, 04:05

Присваивание и инициализация
Здраствуйте, не подскажете чем отличаются две данные операции? Как они...

Присваивание при полиморфизме
Здравствуйте, помогите, пожалуйста) Имеем класс A и унаследованный от него B....

Перегрузка оператора присваивание
Приветствую. Есть код: .h #include &lt;iostream&gt; using namespace std; ...


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

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

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