Студопедия

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

Разделы сайта

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






Упражнения. 1. Объясните смысл следующих объявлений переменных.






 

1. Объясните смысл следующих объявлений переменных.

• int * рОпе;

• int vTwo;

• int * pThree = & vTwo;

Ответы:

а) int * pOne: — объявляет указатель на целое значение;

б) int vTwo — объявляет целочисленную переменную;

в) int * pThroe = & vTwo; — объявляет указатель на целое значение и инициализирует его адресом переменной.

2. Допустим, в программе объявлена переменная yourAge типа unsigned short. Как объявить указатель, позволяющий манипулировать этой переменной?

unsigned short *рАgе = AyourAgo;

3. С помошью указателя присвойте переменной yourAge значение 50.

*рАge =50

4. Напишите небольшую программу и объявите в ней переменную типа int и указатель на этот тип. Сохраните адрес переменной в указателе. Используя указатель, присвойте переменной какое-либо значение.

int theInteger;

int *plnteger = & theInteger:

*plnteger = 5:

5. Жучки: найдите ошибку в следующем фрагменте программы:

#include < iostream.h>

int main()

{

int *pInt;

*pInt = 9;

cout < < " The value at pInt: " < < *pInt;

return 0;

}

Указатель pInt должен быть инициализирован. Поскольку он не был инициализирован и ему не присвоен адрес какой-либо ячейки памяти, то он указывает на. случайное место в памяти. Присвоение этому случайному месту числа 9 является опасной ошибкой.

6. Жучки: найдите ошибку в следующем фрагменте программы:

int main()

{

int SomeVariable = 5.

cout < < " SomeVariable: " < < SomeVariable < < " \n";

int *pVar = & SomeVariable;

pVar = 9:

cout < < " SomeVariable: " < < *pVar < < " \n":

return 0;

}

Возможно, программист хотел присвоить число 9 переменной, на которую указывает указатель pVar. К сожалению, число 9 было присвоено самому указателю pVar, поскольку был опушен оператор косвенного доступа (*)• Если указатель pVar используется для присвоения ему значения, такое программирование неминуемо приведет к тяжелым последствиям.

 

 

День 9

 

Контрольные вопросы

 

1. В чем разница между ссылкой и указателем?

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

2. Когда нужно использовать именно указатель, а не ссылку?

Если в программе нужно назначить указателю новую переменную или если указатель нужно сделать нулевым.

3. Что возвращает оператор new, если для создания нового объекта недостаточно памяти?

Нулевой указатель.

4. Что представляет собой константная ссылка?

Это сокращенный вариант определения ссылки на константный объект.

5. В чем разница между передачей объекта как ссылки и передачей ссылки в функцию?

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

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.