русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Указатели.


Дата добавления: 2015-08-14; просмотров: 653; Нарушение авторских прав


 

Являются очень сложными.

Объявление переменной, выделяет в памяти ячейки. Можно определить в какую ячейку компилятор займет данные:

Int i;

I = 35;

&i

printf (“Адрес %d \n”, &i);

 

Указатели – это особый вид переменной которая хранит адрес переменной какого либо типа (то есть номер ячейки памяти, где находятся данные)

Указатели объявляются: тип*имя_указателя.

Тип – тип переменной, на которую указывает указатель.

 

Пример: int *iptr;

Float *fptr;

 

Если переменная определенна, она должна на что то указывать:

Int *iptr;

Int i;

Iptr = &i;

 

Пример:

#include <stdio.h>

main ( )

{

int i=35;

int *iptr;

iptr = &i;

printf (“Значение переменной”, i);

}

 

 

Массивы

Это располож. вплотную друг за другом в памяти эл-ми одного типа.

Тип имя_массива[кол-во]

Целочисленное беззнаковое

Int array [40]

 

Св-ва массива:

1.Все эл-ты имеют один тип

2.Все эл-ты расположены в памяти друг за другом;

индекс первого эл-та=0.

3.Имя массива явл. Указателем-константой=адресу начала массива( т.е. мл.б. первого эл-та массива )

При описании массива мл.б. выполнена инициализация его эл-ов:

1.Инициализация по умолчанию( производится компилятором только для статических или внешних массивов ) – все эл-ты массива заменяются нулями.

2.Явная инициализация эл-ов( после описания массива помещается список нач. знач. Эл-ов заключенный в {})

Сущ. 2 формы явной инициализации:

1.Явное указание числа эл-ов массива и список нач. знач.( возможно с меньшим числом эл-ов ):

int array [10] = { 1,2,3,4,5 };

array [0] = 1;

array [1] = 2;

…..

array [4] = 5;

а) Для статич. и внешн. массивов:

array [5] = 0;

…..

array [9] = 0;

б) Для автомат. массивов знач. неиниц-их эл-ов будет случайным:



array [5] = ?;

…..

array [9] = ?;

Если число эл-ов массива меньше, чем в описке иниц-ии, то, компилятор выдаст ошибку.

2. Только , со списком нач. значений( компилятор сам определяет кол-во эл-ов по списку иниц-ии)

char array []= { ‘A’, ‘B’, ‘C’, ‘D’};

Доступ к отдельным эл-ам массива мл. б. 2 способами:

1.С помощ. индекса

2.Спомощ. указателя

 

1 Для ссылки на эл-т указывается его порядковый номер в массиве.

Main ()

{

int a[] = { 1,2,3,4,5 };

int index = 0, first, last, bad;

first = a [ index ]; // first = 1;

last = a [ index+4 ]; // last = 5;

bad = a [ index+6 ]; // bad – случайное

В языке CI отсутствует контроль за границами массива. Этот контроль можно делать специально в программе, например, с помощью sizeof. В случае применения к массиву рез-т – число байт, кот. занимает массив в памяти.

Int array [] = { 1,2,3,4,5,6,7 };

Int members;

Members = sizeof ( array ) / sizeof ( int );

Рез-т = 7 эл-ов.

 

2 Т.к. имя массива – это указатель на мл. б. 1-го эл-та, то используя операцию * можно выполнить доступ к любому из эл-ов массива

array [ i ] и *( array+i )

array = & array [ 0 ];

# include < stdio.h >

# define num 10

main ()

{

int array [ num ];

int index; // прим. Индексации к мас.

For ( index = 0 ; index < num >; index ++)

Array [ index ] = index*10;

// Применение арифметики указателей;

for ( index = 0, index < num >; index++)

printf ( “ Эл-ты %d = %d \ n ”, index, *(array+index));

// Применение индексации к указ.

Int * iptr;

Iptr = array;

For ( index = 0; index < num >; index++)

Printf( эл-нт %d = %d\n”, index, iptr [ index ]);

Return 0;

}

Язык CI поддерживает многомерные массивы.

Размерность массива dimension – это число индексов, использ. Для ссылки на конкретный эл-т массива

Int array [10] [20];

 

Столбцы Строки

Int array [3] [3] = {00,01,02,

10,11,12,

20,21,22 };

int array [3] [3] = {{ 00,01,02 } { 10,11,12} { 20,21,22 };

 



<== предыдущая лекция | следующая лекция ==>
Операции присвоения. | Массивы и функции


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.656 сек.