adfun.ru
 
BIGLIB
  большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно
 
АСТРОЛОГИЯ
  книги по астрологии
 
КРИМИНАЛ
  книги про криминал
 
ДЕТЕКТИВЫ
  детективы известных
   писателей
 
ФАНТАСТИКА
  фентези, фантастика,   фантастические повести
 
ПРИКЛЮЧЕНИЯ
  книги про приключения,   путешествия
 
ПОЛИТИКА
  книги про политиков,   репрессии
 
ПСИХОЛОГИЯ
  разнообразная литература   по психологии
 
КЛАССИКА
  классическая литература
 
КОМПЬЮТЕРНАЯ
  ЛИТЕРАТУРА
  про компютерное железо,   документация, языки   программирования
 
РЕЛИГИЯ, АТЕИЗМ
  книги про религию
 
ФИЛОСОФИЯ
  книги, которые заставляют   задуматься над   окружающим тебя миром.
 
ЭНЦИКЛОПЕДИИ
  самые интересные   энциклопедии на
   разные темы
 
МЕДИЦИНА
  медицинские книги,   методички,
   народные лечебники
 
КУЛИНАРИЯ
  рецепты тортов,   консервирование,
  все о спиртных
  напитках.
 
СТИХИ
  стихи популярных и не   очень авторов
 
ТВОРЧЕСТВО
  народное творчество,   стихи, песни и т.д.
 
ЮМОР
  анекдоты, приколы,   смешные истории
 
ЛЮБОВНЫЙ РОМАН
  мир высоких чувств и   любовных грез
 
ЭРОТИКА
  эротические рассказы,   книги о технике секса,   кама-сутра и др.




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Турбо С: руководство пользователя. Часть 1
Автор ""
Размер 993495 Байт
Страница 62 из 69
СКАЧАТЬ КНИГУ ЦЕЛИКОМ

                     mystar.subclass =  2;                                      
                     mystar.decl     =  3.5167;                                 
                     mystar.RA       = -9.633;                                  
                     mystar.dist     =  0.303;                                  
                                                                                
                     /* конец функции main() */                                 
                  }                                                             
                                                                                
          Вы обращаетесь  к каждому элементу структуры,  используя его          
     составное имя,  состоящее из имени структуры (на первом месте) и,          
     в порядке иерархической подчиненности, имен ее образующих элемен-          
     тов, разделенных  точками (.).  Конструкция вида: varname.memname          
     (имя переменной.имя элемента) считается эквивалентной имени пере-          
     менной того же типа,  что и memname,  и вы можете выполнять с ней          
                                                                                
                                                                                
     те же операции.                                                            
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                

                         - 511,512 -
                                                                                
               Структуры и указатели                                            
     -----------------------------------------------------------------          
                                                                                
          Вы можете описывать указатели на структуры точно так же, как          
     и  указатели на другие типы  данных.  Это необходимо для создания          
     связных списков и других динамических структур  данных элементами          
     которых, в свою очередь, являются структуры данных.                        
                                                                                
          Фактически указатели на структуры так часто  используются  в          
     Си, что    существует  специальный  символ  для ссылки на элемент          
     структуры, аресованной  указателем.  Рассмотрим следующий вариант          
     предыдущей программы:                                                      
                                                                                
                  #include                                             
                  main()                                                        
                  {                                                             
                     star *mystar;                                              
                                                                                
                     mystar = (star *) malloc(sizeof(star));                    
                     strcpy(mystar -> name,"Эпсилон Лебедя");                   
                     mystar -> class    = 'N';                                  
                     mystar -> subclass =  2;                                   
                                                                                
                                                                                
                     mystar -> decl     =  3.5167;                              
                     mystar -> RA       = -9.633;                               
                     mystar -> dist     =  0.303;                               
                                                                                
                     /* Конец функции main() */                                 
                  }                                                             
                                                                                
                                                                                
          В этом варианте mystar объявляется как указатель типа  star,          
     а не   как переменная типа star.  Память для mystar резервируется          
     путем обращения к функции malloc.  ТЕПЕРЬ, КОГДА ВЫ ССЫЛАЕТЕСЬ НА          
     ЭЛЕМЕНТЫ mystar,  ИСПОЛЬЗУЙТЕ ptrname -> memnane. Символ -> озна-          
     чает, что  "элемент структуры направлен в ...";  это  сокращенный          
     вариант от обозначения (*ptrname).memnane принятый в Си.                   
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                

                         - 513,514 -
                                                                                
               Оператор switch (переключатель)                                  
     -----------------------------------------------------------------          
                                                                                
          Часто бывает необходимо построить длинные конструкции типа            
     if..else if..else и т.д. Рассмотрим следующую функцию:                     
                                                                                
                  #include                                             
                                                                                
                  do_main_menu(short *done)                                     





{ char cmd; *done = 0; do { cmd = toupper(getch()); if (cmd == 'F') do_file_menu(done); else if (cmd == 'R') run_program(); else if (cmd == 'C') do_compile(); else if (cmd == 'M') do_make(); else if (cmd == '?') do_project_menu(); else if (cmd == 'O') do_option_menu(); else if (cmd == 'E') do_error_menu(); else handle_others(cmd,done); } while (!*done); } Подобная ситуация встречается настолько часто, что в Си была была введена специальная управляющая структура которая носит наз- вание оператор switch. Вот та же функция, но записанная с исполь- зованием оператора switch : #include do_main_menu(short *done) { char cmd; *done = 0; do { cmd = toupper(getch()); switch(cmd) { case 'F' : do_file_menu(done); break; - 515,516 - case 'R' : run_program(); break; case 'C' : do_compile(); break; case 'M' : do_make(); break; case '?' : do_project_menu(); break; case 'O' : do_option_menu(); break; case 'E' : do_error_menu(); break; default : handle_others(cmd,done); } while (!*done); } Эта функция организует цикл, в котором символ считывается, преобразуется к значению на верхнем регистре, а затем запоминает- ся в переменной cmd. Потом введенный символ обрабатывается оператором switch на основе значения cmd. Цикл повторяется до тех пор, пока переменная done не станет равной нулю (предположительно в функции do_file_menu или handle_others). Оператор switch получает значение cmd и сравнивает его с каждым значением метки case. Если они совпадают, начинается вы- полнение операторов данной метки, которое продолжается либо до ближайшего оператора break, либо до конца оператора switch. Если ни одна из меток не совпадает, и вы включили метку default в опе- ратор switch, то будут выполняться операторы этой метки; если метки default нет, оператор switch целиком игнорируется. Значение value, используемое в switch(value) должно быть приведено к целому значению. Другими словами, это значение должно легко преобразовываться в целое для таких типов данных как char, разновидности enum и, конечно, int, а также всех его вариантов. Нельзя использовать в операторе switch вещественные типы данных (такие как float и double), указатели, строки и другие структуры данных, но разрешается использовать элементы структур данных сов- местимых с целыми значениями. Хотя (value) может быть выражением (константа, переменная, вызов функции, и другие комбинации их), метки case должны содер- жать константы. Кроме того, в качестве ключевого значения case может быть только одно значение. Если бы do_main_menu не исполь- зовало фукцию toupper для преобразования cmd, оператор switch мог бы выглядеть следующим образом: switch (cmd) { - 517,518 - case 'f' : case 'F' : do_file_menu(done); break; case 'r' : case 'R' : run_program(); break; ... Этот оператор выполняет функцию do_file_menu независимо от того, в каком регистре поступает значение cmd, аналогично выпол- няются действия для других альтернатив значения cmd. Запомните, что для завершения данного case вы должны исполь- зовать оператор break . В противном случае будут выполняться пос- ледовательно все операторы, относящиеся к другим меткам (до тех пор пока не встретится оператор break).


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 [62] 63 64 65 66 67 68 69


adfun.ru









Форум раскрутка сайта и интернет-реклама
реклама - рекламное агентство -
Интернет PR агентство чат и форум
волчат знакомства - сайт знакомств
бесплатные компьютерные игры
фото знакомства
новые стеклопакеты -
качественное остекление балконов
портал - пластиковые окна -
закажите окна пвх в Москве

частная стоматология в Москве:
надежная стоматологическая клиника
протезирование зубов и
отбеливание зубов в стоматологии
Музыка - скачать mp3 музыка
каталог партнерские программы
ручной бесплатный обмен ссылками цифровые камеры цифровые фотоаппараты -
цифровые видеокамеры

театры - заказ билетов в театр -
магазин - продажа компьютеров
в Москве форум Испания - жилье -
недвижимость в испании

турфирма - испания туры
Переводы - бюро переводов
Законы - закон о товарных знаках,
Грузовые перевозки. АсМАП. Дальнобой закон о рекламе
Интернет казино
реклама на форуме и контекстная реклама
на Яндексе Баннерная сеть и
интернет каталог сайтов Holiday.Ru
Форумы политика, лучшие анекдоты
знакомства.