Курс на Си. Подбельский. Курс программирования на Си. В., Фомин С. С. Курс программирования на языке Си Учебник
Скачать 1.57 Mb.
|
void*, см. Тип void* функции, 157, 198 чисел с плавающей точкой, см. Тип float, Тип double Точность простая, см. Тип float, 65, 73, 76 двойная, см. Тип double У Указатель, 14, 19, 31, 37, 43, 141, 143, 145, 147, 151 значение, 144, 197, см. Значение указателя и массив, 164, 180, см. Массив и указатель инициализация, 94, 234, см. Инициализация массива константа, 151, 153, 197 константный, см. Указатель-константа на массив, 150 на объект, 43, 141, 263, 269 на поток, 287, 288, 308, 315, 323 на строку, 173, 211 на структурированный объект, 37 на структуру, 258, 278 на функцию, 197, 198, 202, 204, 207, 208 нулевой, см. Нулевой указатель объект, 150 параметр, 181 переменная, 145 пустой, см. Нулевой указатель родовой, см. Тип void* Умножение, см. Операция умножения Унарные операции, 66, 148 Управляющая последовательность, 15 Условная операция, см. Операция условная трехместная, 38, 54 Условный оператор, см. Оператор if Уточненное имя, см. Имя уточненное Ф Файл заголовочный, см. Заголовочный файл Форматирование данных при вводе-выводе, 294 Форматная строка, 61, 73, 177, 221, 294, 300, 301, 314 Флаг форматирования, 297 Функция, 176 main( ), 60, 100, 103 описание, см. Описание функции определение, см. Определение функции прототип, см. Прототип рекурсивная, см. Рекурсивная функция с переменным количеством аргументов, 211 самовызывающая, см. Рекурсивная функция указатель, см. Указатель на функцию Функция библиотечная calloc( ), 155, 164, 219 close( ), 32, 328 creat( ), 322, 323, 327 exit( ), 104, 108, 226 fclose( ), 288 fopen( ), 287 free( ), 155, 156, 164, 230, 266 fseek( ), 316, 317, 318, 321 getchar( ), 166, 167, 288, 289 lseek( ), 323, 331, 332 malloc( ), 155, 157, 158, 164, 173, 271 open( ), 322, 323, 325, 327 perror( ), 287, 288 printf( ), 61, 62, 67, 68, 165, 288, 293, 294 putchar( ), 288, 289, 291, 292, 309 qsort( ), 207, 208, 210 read( ), 322, 328, 329 scanf( ), 73, 74, 76, 165, 183 strcmp( ), 210, 211 strcpy( ), 194 strlen( ), 195 strncat( ), 192 strstr( ), 191, 364 va_arg( ), см. Макроопределение va_arg( ) va_end( ), см. Макроопределение va_end( ) va_start( ), см. Макроопределение va_start( ) write( ), 322, 328, 329, 330 Ц Целая константа, см. Константа целая Целочисленный тип, см. Тип int (long, short, unsigned) Цикл, 14 бесконечный, 205, 307 итерационный, см. Оператор for с постусловием, см. Оператор do с предусловием, см. Оператор while Ш Шестнадцатеричная константа, см. Константа шестнадцатеричная Э Эскейп-последовательность, 119 Эффекты побочные, см. Побочные эффекты Я Явное преобразование типа, см. Операция явного преобразования типа 4 Лексема - единица текста программы, которая при компиляции воспринимается как единое целое и по смыслу не может быть разделена на более мелкие элементы. 5Приведенный пример и общие положения вычислительной математики заставляют существенно ограничить применение переменных типа float. Тип float можно выбирать для представления исходных данных или окончательных результатов, получаемых в программе. Однако применение данных типа float в промежуточных вычислениях (особенно в итерационных алгоритмах) следует ограничить и всегда использовать double либо long double. К сожалению, ни double, ни long double не снимают полностью проблем конечной точности представления вещественных чисел в памяти ЭВМ. Существенное различие в порядках значений операндов арифметических выражений может привести к подобным некорректным результатам и при использовании типов double и long. Выделение лексем из текста программы. В главе 1 мы ввели понятие лексемы, перечислили их группы (идентификаторы, знаки операций и т. д.) и определили состав каждой из групп лексем. Первая задача, которую решает компилятор, - это лексический анализ текста программы. В результате лексического анализа из сплошного текста выделяются лексические единицы (лексемы). Программисту полезно знать, какими правилами при этом руководствуется компилятор. 6char *z; /* z - указатель на объект символьного типа */ int *k,*i; /* k, i - указатели на объекты целого типа */ float *f; /* f - указатель на объект вещественного типа */ 7#include #include #include /* Определение функции для сравнения: */ int compare(const void *a, const void *b) { unsigned long *pa = (unsigned long *)a, 8pb = (unsigned long *)b; return strcmp((char *)*pa, (char *)*pb); } void main() { char *pc[] = { "One - 1", "Two - 2", "Three - 3", "Four - 4", "Five - 5", 9pinega = = dot[0] pinega -> massэквивалентно (*pinega).mass pinega -> coord[0] эквивалентно (*pinega).coord[0] #include struct complex { /* Определение структурного типа complex*/ float x; /* Вещественная часть */ float y; /* Мнимая часть */ } array [ ] = {1.0, 2.0, 3.0, -4.0, -5.0, -6.0, -7.0, -8.0}; struct complex summa = {0.0, 0.0}; Здесь ранее определенная структура типа struct mix является элементом структуры типа struct hole. В то же время элементом структуры может быть указатель на структуру того же типа, что и определяемый структурный тип: |