helpme

Тема в разделе "Общие вопросы по С и С++", создана пользователем free, 22 окт 2003.

Статус темы:
Закрыта.
  1. free

    free Гость

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

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

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    Во первых сразу сам посмотри что он выведит :D Трудно чтоль?
    Не знаю. Код должен вывести 01234 и всё. Что такое /n? Вот \n - это перевод строки. А /n???
    См. тут. Это форум, а не рассылка.
     
  3. Kernel

    Kernel Гость

    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'
     
  4. admin

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    Kernel
    Так ты в C++ шаришь :) Может тебя и модером этого раздела сделать :) Как считаешь?
     
  5. Guest

    Guest Гость

    <!--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. :)
     
  6. Guest

    Guest Гость

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

    Kernel Гость

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

Поделиться этой страницей