- •1). Предмет и задачи информатики. Устройство машины «Неймана»
- •7). Материнская плата и устройство размещения на ней:
- •11). Прикладное по
- •12). Инструментальное по:
- •13). Организация файловой системы:
- •14). Базовые принципы организации и функционирования компьютерных сетей. Классификация.
- •Локальные и глобальные сети.
- •15). Базовые сетевые топологии
- •16). Интернет
- •3). Алгоритм. Понятие алгоритма. Типы алгоритмов. Формы представления. Основные блоки.
- •4). Программирование на языке с. Основные понятия языка (алфавит, идентификаторы, ключевые слова, препроцессор, объектный код)
- •Математические функции
- •12). Указатели. Применение указателей. Объявление указателей. Связь указателей и массивов. Использование указателей в функциях.
- •Указатели и массивы
- •Использование указателей в функциях.
- •Файловый указатель
12). Указатели. Применение указателей. Объявление указателей. Связь указателей и массивов. Использование указателей в функциях.
Указатель – это переменная, значением которой является адрес, по которому располагаются данные.
Типы данных необходимы для того, чтобы мочь выделить кусок памяти определенного размера для хранения данных и определения того, что это за данные ибо без явного определения непонятно является ли набор нулей и единиц числом, символом или чем-нибудь еще.
Примеры объявления указателей на различные типы переменных:
unsigned int * ptr; /* переменная ptr представляет собой указатель на целую беззнаковую) переменную*/
float * x; /* переменная х указывает на переменную с плавающей точкой*/
char *buffer ; /*объявляется указатель с именем buffer который указывает на символьную переменную*/
Указатели и массивы
Допустимо бесконечно большое число различных типов указателей и массивов. Далее следуют типовые примеры.
Указатель на основной тип:
char *p;
Переменная р является указателем на символ, т.е. этой переменной должен присваиваться адрес символа.
Указатель на указатель:
char **t;
Переменная t - указатель на указатель символа.
Одномерный массив:
int a[50];
Переменная а - массив из 50 целых чисел.
Двумерный массив:
char m[7][50];
Переменная m - массив из семи массивов, каждый из которых состоит из 50 символов.
Массив из семи указателей:
char *r[7];
Массив r состоит из указателей на символы.
Указатель на функцию:
int (*f)();
f - указатель на функцию, возвращающую целое значение.
Использование указателей в функциях.
Процесс передачи параметров в функциях рассматривался подробно в разделе "Функции". Как станет известно в дальнейшем, если значение параметра должно изменяться, то в функцию передается указатель на параметр. В следующей программе SWAPVALS.C используются указатели на два параметра типа int для операции обмена значениями пере менных:
#include <stdio.h>
void swap_values(int *a, int *b)
{
int temp;
temp = *a; // Временная переменная для хранения значения а
*а = *b; // Значение Ь присваивается а
*b = temp; // Значение а присваивается Ь }
}
void main(void)
{
int one = 1, two = 2;
swap_values(&one, &two);
printf("one равно %d two равно %d\n", one, two);
}
Как видно, внутри функции для нахождения значения по указателю используется операция 'звездочка" (*). Программа передает адреса переменных в функцию, используя операцию адресации (&).
13). Понятие о структуре. Объявление структур. Операции со структурами.
Структура - это набор данных, где данные могут быть разного типа. Например, структура может содержать несколько переменных типа int и несколько переменных типа char. Переменные, которые содержаться в структуре называются членами или полями структуры. Структуры можно определять с помощью ключевого слова struct.
В языке С есть возможность объявлять переменные структуры при описании структуры:
struct student
{
char name[50];
int kurs;
int age;
} s1, s2;
Переменные s1 и s2 являются переменными типа struct student.
14). Работа с файлами. Файловый указатель. Функции, предназначенные для работы с файлами.
#include
#include
void main( void )
{
FILE *file;
char* file_name = "file.txt";
char load_string[50] = "none";
file = fopen( file_name, "w" );
fputs( "string", file );
fclose( file );
file = fopen( file_name, "r" );
if( file != 0 )
{
fgets( load_string, 50 , file );
cout
Описание функций работы с файломи находятся в библиотеке stdio.h
Сначала надо создать указатель на переменную типа FILE ( FILE* file; ).
Открытие файла производится вызовом функции fopen ( file = fopen( file_name, "w" ); )
Первый параметр этой функции - имя файла, второй - указывает в каком режиме должен быть открыт файл. "w" - открыть для записи, "r" - открыть для чтения, "a" - дополнение файла( это наиболее используемые режимы, хотя есть и другие ). Запись и считывание данных из файла осуществляется следующими функциями : fputc, fputs, fgetc, fgets, fprintf, fscanf( описание этих функций смотрите в stdio.h).
Закрытие файла осуществляется вызовом функции fclose ( fclose( file ); ).