русс | укр

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

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

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

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


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

Термины


Дата добавления: 2013-12-23; просмотров: 1022; Нарушение авторских прав


P1++; // Значение адреса увеличится на 4

Указатель на массив указателей и указатель на массив

Следует отметить, что с помощью скобок () в языке Си можно создавать указатели разных типов. Существуют указатели на массивы указателей и указатели на массивы заданного типа и заданного числа элементов.

Например:

int ** p1; // Указатель на массив указателей

int (*p2)[10]; // Указатель на массив из 10 элементов типа int

При выполнении арифметических операций с такими указателями будет происходить следующее:

p2++; // Значение адреса увеличится на 40=4*10 в Win32

Это происходит потому, что при выполнении арифметических операций с указателями за единицу принимается размер объекта в памяти, на который указывает указатель.

В заключение представим пример программы, которая выполняет сортировку элементов массива в порядке неубывания. При сортировке используется алгоритм прямого выбора: в массиве размерности n ищется минимальный элемент, потом минимальный элемент меняется местами с первым элементом, после этого первый элемент будет на своем месте; на следующем шаге рассматривается массив размерности на единицу меньший (без первого элемента) к нему применяется тот же алгоритм, и т.д. Массив в программе создается динамически, размерность вводится с клавиатуры, заполняется случайными числа и выводится на печать до сортировки и после сортировки.

#include <stdio.h>

#include <stdlib.h>

void main()

{

int *pM; // Указатель на массив

int n; // Число элементов массива

printf("n="); scanf("%d", &n); // Ввод числа элементов

// Выделение памяти для массива

pM=(int *)malloc(n*sizeof(int));

// Заполняем массив псевдослучайными числами в интервале 0..99

for(int i=0; i<n; i++) pM[i]=rand() % 100;

// Печатаем исходный массив



for(int i=0; i<n; i++) printf("%d ", pM[i]);

for(int i=0; i<n-1; i++) // Считаем, что массив начинается с i-го

// элемента

{

int imin=i, // Индекс миниамльного элемента

// (считаем минимальным i-ый элемент)

min=pM[i]; // Значение минимального элемента

// Сравниваем выбранный элемент со всеми последующими

for(int j=i+1; j<n; j++)

if (pM[j]<min) // Нашли элемент меньший чем min

{

min=pM[j];

imin=j;

}

// Минимальный элемент меняем с i-m

pM[imin]=pM[i];

pM[i]=min;

}

// Пеачть массива после сортировки

printf("\n"); // Переход на новую строчку

for(int i=0; i<n; i++) printf("%d ", pM[i]);

}

 

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

Ссылка– это переменная, представляющая новое имя уже существующего объекта, ссылка по своей сути является указателем, но к ней нет необходимости применять операцию * (обращение по адресу) при обращении к объекту, любое обращение к ссылке приводит к обращению к объекту, на который ссылается ссылка.

Массив– это производный тип, представляющий собой множество элементов, все элементы массива имеют один и тот же тип и следуют в памяти друг за другом.

Строка– это символьный массив, заканчивающийся символом с кодом 0 (символ NULL) – это служебный символ, являющийся признаком конца строки.

 



<== предыдущая лекция | следующая лекция ==>
Динамические многомерные массивы | Инициализация структуры


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


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

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

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


 


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

 
 

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

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