Просмотр указателей в отладчике
Для указателя ptri, определенного, как
int i = 4, *ptri;
ptri = &i;
окно просмотра в отладчике по Alt-F4 имеет вид
Таблица.1.
8FAC:FFF2 | п | Ds:FFF4 | |
[0] | 4(0x0004) | ||
int * |
Здесь указаны:
· адрес самой переменной ptri, равный 8FAC:FFF2;
· значение этой переменной Ds:FFF4;
· а также содержимое ячейки по адресу Ds:FFF4, т.е. значение i.
Для того, чтобы узнать содержимое ячеек, окружающих переменную i, нужно воспользоваться комбинацией клавиш Alt-I, ввести начальный индекс (Starting index) и число ячеек (Count). Если, например, введены числа -5 и 15, то можно в приведенном выше окне можно просмотреть элементы массива
ptri[-5], ptri[-4],… ,ptri[10].
Контрольные вопросы.
1.Как определить размер одномерного массива?
2.Какие размеры можно опустить у массива при его инициализации?
3.Нарисуйте схему ОЗУ при выходе за диапазон массива int A[3][4] в случае логической ошибке A[3][4] = 0;
4.Определите смещение в байтах элемента A[i][j] относительно начала массива float A[4][5].
5.Напишите программу, в которой находится сумма элементов первой и последней строки и столбца матрицы A[m][n].
6.Объявлены переменные
char c;
int *pi;
float **ppf;
Укажите типы и базовые типы выражений, если они существуют
&c, *(&c), &pi[0], &(p+10), &&ppf, ppf[10], (*ppf)[3]
7.Имеется указатель
int n=5, m=20;
int *const pi = &n;
Какие операторы синтаксически неверны
*pi = 10;
pi = &m;
*pi++;
(*pi)++;
Лабораторные задания
Скалярное произведение
Напишите функцию, которая находит скалярное произведение двух векторов.
Минимакс
Две функции находят построчный минимакс и построчный максимин элементов прямоугольной матрицы целых чисел. Под построчным минимаксом понимается минимальное из максимальных элементов во всех строках матрицы.
Массивы строк
Напишите функцию, которая объединяет массив строк в одну строку, а также тест этой функции.
Трехмерный массив
Найдите сумму элементов трехмерного массива с использованием только указательной арифметики.
Дополнительные задания
- Написать функцию, которая добавляет строку к массиву строк.
- Написать функцию, которая преобразует в текст денежную сумму.