Читайте также:
|
|
Лабораторная работа № 2
Работа с указателями, ссылками и массивами в С
Оглавление
Лабораторная работа № 2. 1
Работа с указателями, ссылками и массивами в С.. 1
Вектор целей. 1
Структура памяти процесса. 2
Рекомендации по работе с массивами. 2
Примеры использования указателей, ссылок и массивов. 3
Демонстрация связи указателя с переменной. 3
Объявление массива. Чтение и запись элементов массива. 3
Случайная генерация элементов массива в заданном диапазоне. 3
Порядок выполнения заданий. 4
Варианты заданий. 4
Задание 1: работа с одномерными массивами. 4
Задание 2: Работа с двумерными массивами. 7
Контрольные вопросы.. 9
Список рекомендованной литературы.. 9
Вектор целей
1. Ознакомиться с архитектурой памяти работающей программы (процесса). Понять концепцию указателей.
2. Освоить приёмы работы со статическими массивами (случайная генерация элементов и т.п.)
Структура памяти процесса
Рекомендации по работе с массивами
При объявлении статического массива необходимо явно указать тип данных и кол-во элементов (int weights[10], float temper[20]). Не указывать размер можно только в том случае, когда элементам массива присваиваются значения сразу при объявлении: int mas[] = { 1, 2, 3 };
Размер статического массива лучше объявлять с помощью константы (например, const int N = 10; int mas[N];). Это позволит избежать исправлений множества участков программы, использующих это значение.
Обработка массива, как правило, производится в цикле, чаще всего со счётчиком (for), т.к. количество элементов известно.
Для чтения и записи элементов массива используются квадратные скобки, в которых указывается индекс: mas[0] = 2; mas[5] = mas[0] * 2;
Значения элементов могут быть введены с клавиатуры (например, с помощью scanf) или сгенерированы случайным образом.
Примеры использования указателей, ссылок и массивов
Демонстрация связи указателя с переменной
#include <stdio.h>
int main() {
int a = 5;
printf("Значение переменной а = %i\n", a);
printf("Адрес переменной а = %p\n", &a);
// объявляем указатель на целочисленное значение
int *pa;
pa = &a; // в указатель записываем адрес беременной а
printf("Значение указателя pа = %p\n", pa);
printf("Значение, на которое указывает *pа = %i\n", *pa);
// *pa - операция разименования указателя
*pa = 77; // меняем значение, на кот. указыв. указатель
printf("Новое значение переменной а = %i\n", a);
/* указатель - это переменная, в кот. храниться длинное число
- адрес другой переменной */
return 0;
}
Объявление массива. Чтение и запись элементов массива
#include <stdio.h>
int main() {
const int N = 5; // константа - размер массива (кол-во элементов)
int weights[N]; // массив целых чисел
int mas[] = { 1, 2, 3 }, mas2[10] = { 0 }; // объявление массива и присвоение значений
int i, sum = 0;
printf("Введите %i значений весов грузов в кг.: ", N);
for (i = 0; i < N; i++) {
scanf("%i", &weights[i]);
weights[i] *= 1000; // перевод в граммы
sum += weights[i];
}
printf("Значение весов в граммах: \n");
for (i = 0; i < N; i++) {
printf("%i ", weights[i]);
}
printf("\nСуммарный вес в граммах: %i \n", sum);
return 0;
}
Дата добавления: 2015-12-08; просмотров: 50 | Нарушение авторских прав