helpme

  • Автор темы free
  • Дата начала
Статус
Закрыто для дальнейших ответов.
F

free

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

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

admin

Well-Known Member
08.08.2003
2 754
1
#2
Объясните плиз, ничего не понимаю:
1.является ли следующий код правильным? почему?Если да, то, что он выведет.
cout<<(int *) "Является ли этот код правильным?"
Во первых сразу сам посмотри что он выведит :D Трудно чтоль?
2.Что бы вывел на печать следующий фрагмент кода, если бы он был включен в программу:
int i; for(i=0;i<5;i++)
cout<<i; cout<<'/n';
ответ выведет он-0123412142
что такое '/n'
и что такое 12142????????????????????????
Не знаю. Код должен вывести 01234 и всё. Что такое /n? Вот \n - это перевод строки. А /n???
сли не трудно ответ шлите на free@hitv.ru
См. тут. Это форум, а не рассылка.
 
K

Kernel

Гость
#3
1. cout<<(int*) -- это просто преобразование типа к указателю на инт
т.е если у нас есть int t[5]={1,2,3,4,5}; то
cout<<(int*)t - выдаст адрес t
cout<<(int*)t[0] - выдаст 0x00000001 (просто 1 в хексах :)
и так как тип у нас int* то
cout<<(int*)t[0]+1 - выдаст 0x00000005 (т.к. размер инта - 4 байта при добавлении единицы к указателю на инт он тоже будет смещатся на 4 байта).
2. cout<<'/n' выдаст 12142 = (47*256+110) где 47 это ASCII код символа '/' а 110 это ASCII код символа 'n'
 

admin

Well-Known Member
08.08.2003
2 754
1
#4
Kernel
Так ты в C++ шаришь :) Может тебя и модером этого раздела сделать :) Как считаешь?
 
G

Guest

Гость
#5
<!--QuoteBegin-Kernel+25:10:2003, 13:24 -->
<span class="vbquote">(Kernel @ 25:10:2003, 13:24 )</span><!--QuoteEBegin-->cout<<(int*)t[0]+1 - выдаст 0x00000005 (т.к. размер инта - 4 байта при добавлении единицы к указателю на инт он тоже будет смещатся на 4 байта).[/quote]
4 байта - это привязка к машине... Тем более синтаксис используется до стандарта Ansi97. :)
 
G

Guest

Гость
#6
зыЖ В Borland 3.1 sizeof(int)==2(*sizeof(char) - если уже быть абс. точным )
 
K

Kernel

Гость
#7
Не суть принципиально - главное что смещятся будет на размер инта ...
А на счёт привязки к машине - так то что 1 байт = 8 бит это тоже привязка к машине - однако с этим почему-то редко спорят :)
 
Статус
Закрыто для дальнейших ответов.