Архив на категорию: '1.7. Указатели и адресная арифметика'

1.7.1. Методы доступа к элементам массивов

В языке СИ между указателями и массивами существует тесная связь. Например, когда объявляется массив в виде int array[25], то этим определяется не только выделение памяти для двадцати пяти элементов массива, но и для указателя с именем array, значение которого равно адресу первого по счету (нулевого) элемента массива, т.е. сам массив остается безымянным, а доступ к [...]

1.7.2. Указатели на многомерные массивы

Указатели на многомерные массивы в языке СИ – это массивы массивов, т.е. такие массивы, элементами которых являются массивы. При объявлении таких массивов в памяти компьютера создается несколько различных объектов. Например при выполнении объявления двумерного массива int arr2[4][3] в памяти выделяется участок для хранения значения переменной arr, которая является указателем на массив из четырех указателей. Для [...]

1.7.3. Операции с указателями

Над указателями можно выполнять унарные операции: инкремент и декремент. При выполнении операций ++ и — значение указателя увеличивается или уменьшается на длину типа, на который ссылается используемый указатель. Пример: int *ptr, a[10]; ptr=&a[5]; ptr++; /* равно адресу элемента a[6] */ ptr–; /* равно адресу элемента a[5] */ В бинарных операциях сложения и вычитания могут участвовать [...]

1.7.4. Массивы указателей

В языке СИ элементы массивов могут иметь любой тип, и, в частности, могут быть указателями на любой тип. Рассмотрим несколько примеров с использованием указателей. Следующие объявления переменных      int a[]={10,11,12,13,14,};      int *p[]={a, a+1, a+2, a+2, a+3, a+4};      int **pp=p; При выполнении операции pp-p получим нулевое значение, так как ссылки pp и p равны [...]

1.7.5. Динамическое размещение массивов

При динамическом распределении памяти для массивов следует описать соответствующий указатель и присваивать ему значение при помощи функции calloc. Одномерный массив a[10] из элементов типа float можно создать следующим образом float *a; a=(float*)(calloc(10,sizeof(float)); Для создания двумерного массива вначале нужно распределить память для массива указателей на одномерные массивы, а затем распределять память для одномерных массивов. Пусть, например, [...]


Холодильники с доставкой, холодильники Киев. | интернет реклама киев | vkontakte free