Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
po_programmirovaniyu_otvety.rtf
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
22.6 Mб
Скачать

Int value; //Запись &value означает «адрес объекта value».

Можно сохранить адрес объекта value следующим образом:

int *p_value = &value; // переменная p_value, имеющая тип

// «указатель на объект типа int» инициализируется адресом

// переменной value.

Теперь указатель p_value может быть использован для доступа к объекту, на который он указывает:

*p_value = 1;

Пример 1:

Выведем значения переменной и ее адреса в памяти

#include "stdafx.h"        

#include <iostream>          

using namespace std;  

int main (void)

{ int *c; int d;

d = 45;

c = &d; // с присваивается адрес переменной d

cout << "\n Адрес : " << с << endl;

cout << "\n 3начение по адресу с: " << *с << endl;

cout << "\n 3начение d: " << d << endl;

return 0;

}

Пример 2:

Изменим значение переменной двумя способами:

1) С использованием имени переменной.

2) С использованием адреса переменной.

#include "stdafx.h"        

#include <iostream>          

using namespace std;  

int main (void)

{ int *c; int d;

c=&d; // с присваивается адрес переменной d

d=105; // первый способ

*с=105; // второй способ

cout << "\n значение переменной через ее имя “ << d << endl;

cout << "\n значение переменной через ее адрес “ << *с;

return 0;

}

Вопрос 39. Указатели и массивы. Методы ссылки на элементы массива. Привести примеры программ с использованием ссылок на языке С/C++.

  • Имя массива можно рассматривать как указатель на его первый элемент.

int v [ ] = { 1,2,3,4 }; int *p1 = v;    

// Указатель на первый элемент

int *p2 = &v[0] // Указатель на первый элемент

int *p3 = &v[4] // Указатель на элемент,

// следующий за последним 

  • В противоположность указателю на массив, определение массива указателей выглядит следующим образом:

Int *ap [15]; // Массив из 15 указателей на int

Пример обнуления элементов массива с использованием индексов и указателей

с использованием индексов:

int arr [ArraySize];

for (int i=0; i < ArraySize; ++i) 

arr [i] = 0;

с использованием указателей: int arr [ArraySize];

int *p=arr;

for (int i=0; i < ArraySize; ++i) 

*p++ = 0;

Вопрос 40. Передача массивов в качестве параметров в функцию. Привести пример передачи массива вещественных чисел в функцию, вычисляющую сумму его элементов.

Передача массива в функцию Пример 2

#include "stdafx.h"        

#include <iostream>          

using namespace std;      

double Summa (double array[ ])

{ unsigned int n = sizeof (array) / sizeof (double) ;

double s = 0 ;

for ( int i = 0; i < n; ++i ) s += array [ i ] ;

return s;

}

int main (void)

{ double v [10] = { 1, 2, 3, 4, 5, 6 };

cout << Summa (v) << endl;

return 0;

}

Функция, вычисляющая сумму элементов массива вещественных чисел 2 вариант написания кода

#include "stdafx.h"        

#include <iostream>          

using namespace std;      

double Summa (double array[], int n)

{ double s = 0 ;

for ( int i = 0; i < n; ++i ) s += array [ i ] ;

return s;

}

int main (void)

{ double v [10] = { 1, 2, 3, 4, 5, 6 };

cout << Summa (v, 10) << endl; // весь массив

cout << Suirima (v + 2, 8) << endl; // последние 8 эл-тов

cout << Summa (v + 5, 5) << endl; // 5 последних эл-тов return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]