Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Краткие теоретические сведения. Имя массива трактуется как указатель-константа на массив





Имя массива трактуется как указатель-константа на массив.

Пусть в программе объявлен массив:

int X[10];

В таком случае X является указателем на нулевой элемент массива в памяти компьютера. В связи с этим истинным является отношение

X= =&X[0]

Отсюда следует, что для доступа к элементам массива кроме индексированных имен можно использовать разадресованные указатели по принципу

имя [индекс] тождественно *(имя + индекс)

Например, для описанного выше массива X взаимозаменяемы следующие обозначения элементов:

X[5] или *(X+5) или *(5+ X)

Поскольку X – указатель на величину целого типа, то X+5 увеличивает значение адреса на 10.

В языке Си символ [ играет роль знака операции сложения адреса массива с индексом элемента массива.

Теперь понятно, почему индекс первого элемента массива всегда равен нулю. Его адрес должен совпадать с адресом массива: X[0]= = *(X+0)

Пример.

const int N = 6;

double arr[N]={23.1, -34, 90.7, 34,-45, 10.8};

double *p;

Направить указатель на массив можно двумя способами:

1. р = агг;

2. р = &агг[0];

Обращения к элементу массива arr: arr[i], *(arr+i) и *(p+i) эквива­лентны.

Таким образом, для любых указателей можно использовать две эквива­лентные формы выражений для доступа к элементам массива: arr[i] и *(аrr+1). Первая форма удобнее для читаемости текста, вторая - эффек­тивнее по быстродействию программы.

Ввод элементов массива через указатели:

const int N = 6;

double arr[N]={23.1, -34, 90.7, 34,-45, 10.8};

double *p;

int ind; //определение индекса массива

for(ind = 0; ind < N; ind++)

{

//Вывод номера ячейки, куда вводится значение

printf(“[%d]=”,ind);

// ввод значения в ind-й номер ячейки

scanf(“%lf(arr+ind));

}

Обращение через указатели к элементам матрицы

for (i=0; i<n1; i++)

for (j=0; j<n2; j++)

*(*(m+i)+j) = i+j;

Порядок выполнения работы

1. Изучить теоретические сведения.

2. Выполнить задание.

Date: 2015-10-19; view: 310; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию