Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > helpme


Автор: freedom 22.10.2003, 00:09
Объясните плиз, ничего не понимаю:
1.является ли следующий код правильным? почему?Если да, то, что он выведет.
cout<<(int *) "Является ли этот код правильным?"

что такое (int*)confused.gifconfused.gifconfused.gifconfused.gif??
2.Что бы вывел на печать следующий фрагмент кода, если бы он был включен в программу:
int i; for(i=0;i<5;i++)
cout<<i; cout<<'/n';
ответ выведет он-0123412142
что такое '/n' confused.gifconfused.gifconfused.gifconfused.gifconfused.gifconfused.gifconfused.gifconfused.gif
заранее благодарен
если не трудно ответ шлите на [email protected]

Автор: Lucifer 22.10.2003, 00:42
Цитата(freedom @ 22.10.2003, 00:09)
Объясните плиз, ничего не понимаю:
1.является ли следующий код правильным? почему?Если да, то, что он выведет.
cout<<(int *) "Является ли этот код правильным?"

что такое (int*)confused.gifconfused.gifconfused.gifconfused.gif??
2.Что бы вывел на печать следующий фрагмент кода, если бы он был включен в программу:
int i; for(i=0;i<5;i++)
cout<<i; cout<<'/n';
ответ выведет он-0123412142
что такое '/n' confused.gifconfused.gifconfused.gifconfused.gifconfused.gifconfused.gifconfused.gifconfused.gif
заранее благодарен
если не трудно ответ шлите на [email protected]

Может ты имел в виду \n? Тогда это символ конца строки в C++. А оператор << - оператор "поместить в поток". А вот тот for, дык это простой цикл с инкриментацией переменной цикла ...
* - это оператор косвенной адресации ...
Короче, достаешь любую книгу по C++ и читаешь ... там все это нормально описано ...

Автор: Lucifer 22.10.2003, 00:45
К стати советую достать книгу такого вот себе автора: А. Я. Архангельский.
Уж больно неплохо мужик книги пишет, только выбрать нужно именно то издание, которое тебе больше подходит под твои познания. Не нужно брать сразу справочное пособие если ты в сях вообще дупля отбить толком не можешь, к примеру.

Автор: Freedom 22.10.2003, 00:49
вот именно что всё правильно
в задании 1 компилируется и выводит одно и тоже число 4206788
понять не могу что это такое (int*)
в задании 2 имеется в виду именно '/n' а не что либо другое и ещё выведет на экран 0123412142
01234 это понятно, а что такое 12142???

Автор: gray_k 22.10.2003, 08:11
Цитата

>> Вставка цитаты <<
вот именно что всё правильно
в задании 1 компилируется и выводит одно и тоже число 4206788
понять не могу что это такое (int*)
в задании 2 имеется в виду именно '/n' а не что либо другое и ещё выведет на экран 0123412142
01234 это понятно, а что такое 12142???

Здесь вё просто. Если написать код более наглядно:
Код

int i;
for(i=0;i<5;i++)
     cout<<i;
cout<<'/n';

Сначала выводятся цифры с 0 до 4 (в цикле), а потом '/n' - тип unsigned int.
Просто прееменная символьного типа в C++ является целым числом.

Автор: gray_k 22.10.2003, 08:18
А первый случай выводит адрес где хранится строка. И он-то как раз выводить одно и тоже число не будет.

Автор: Freedom 22.10.2003, 10:02
какой такой первый код?
cout<<(int *) "Является ли этот код правильным?"
в кавычках можно писать всё что угодно,ВСЁ РАВНО ВЫВОДИТ НА ЭКРАН ОДНО И ТОЖЕ-4206788
я даже комп перезагружал, ВСЁ РАВНО

"Просто прееменная символьного типа в C++ является целым числом"-объясните по подробнее

Автор: Freedom 22.10.2003, 10:04
не первый код , а первый случай-ошибся

Автор: gray_k 22.10.2003, 11:43
cout << '/n';
'/n' - переменная типа char. Это число, которое и выводится в поток.
(int*) - читайте литературу по преобразованию типов и указателям. У меня на компе этот код выдаёт совсем другое число (зависит от компилятора).
cout<<(int *) "Является ли этот код правильным?" - происходит приведение строки к указателю на целое число и воводится значение этого указателя. Т.е. у тебя выводится адрес со значением равным строке в целочисленной интерпритации. Мож я сумбурно объясняю, но лучше не получается smile.gif.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)