Турбо отладчик (Turbo Debugger) 3.0

intp для ссылки на следующий


Например:
               int *intp;
               intp += sizeof(int);
       не будет работать так,  как вы  задумали  (предполагая  увеличить
       intp для ссылки на следующий элемент массива).  Фактически,  intp
       продвигается на два элемента массива.  При сложении или при вычи-
       тании  из указателя Си принимает во внимание размер элемента,  на
       который ссылается указатель,  поэтому все,  что нужно сделать для
       продвижения  указателя  на следующий элемент массива - это опера-
       ция:
               intp++
                     Не забывайте о расширении по знаку
       -----------------------------------------------------------------


            Будьте аккуратны  при  присваивании  целых  чисел различного
       размера:
               int i = OXFFFE;
               long    l;
               l = i;
               if (l & OX800000000) {
               ...                            /* это будет выполнено */
               }
            Один из моментов в Си,  который может привести к неприятнос-
       тям, состоит в том, что вы не знаете о последствиях. Язык Си поз-
       воляет  свободно  использовать  присваивание  одной целочисленной
       скалярной величины (char, int и т.д.) другой, знак (положительный

       TDeb 3.0 #2-3               = 128 =
       или  отрицательный)  сохраняется  в  переменной большего размера,
       причем бит знака (старший бит) распространяется  на  всю  старшую
       часть большего скалярного значения. Например, значение типа int -
       2 (Oxfffe) становится значением типа long -2 (oxfffffffe).

       TDeb 3.0 #2-3               = 129 =
                             Помните об усечении
       -----------------------------------------------------------------
            Данный пример противоположен примеру предыдущего раздела:
               int i = 1;
               long    l = OX10000;
               l = i;
               if (i > 0) {
               ...                          /* это не будет выполнено */

Содержание раздела