Академический Документы
Профессиональный Документы
Культура Документы
Каждый байт в памяти ЭВМ имеет адрес, по которому можно обратиться к определенному
элементу данных
Указатель – это переменная, которая хранит адрес другой переменной определенного
типа.
По описанию указателя компилятор получает информацию о том, какова длина области
памяти, на которую ссылается указатель
(которую занимает переменная, на которую он ссылается) и о том, как
интерпретировать данные в этой области памяти.
cинтаксис объявления указателей
1.Базовый_тип *Имя_Указателя;
2.Базовый_тип* Имя_Указателя;
Инициализация указателей
Указатель можно инициализировать адресом переменной, которая уже определена:
•присваивания,
•доступа по указателю (разыменование (*)),
•инкремента или декремента,
•сложение с константой,
•вычитание двух указателей,
•сравнение указателей (одного типа),
•приведение типов,
•получения адреса (&)
Указатели и массивы
Объявляя массив, мы объявляем имя массива как указатель на его первый элемент,
значение которого нельзя изменить (константный указатель).
Ссылки
Ссылка (reference) – псевдоним для другой переменной.
Ссылка имеет имя, которое может использоваться вместо имени переменной.
Так как ссылка – это псевдоним, а не указатель, переменная, для которой она
определяется, должна быть объявлена ранее.
В отличие от указателя ссылка не может быть изменена, чтобы представлять другую
переменную
Ссылка, в отличие от указателя, не занимает дополнительного пространства в памяти и
является просто другим именем величины.
Объявление и инициализация:
Базовый_тип &Имя_Ссылки = Имя_Переменной;
int number = 0;
int &rnumber = number; // ссылка
int *pnumber = &number // указатель
rnumber +=10;
*pnumber +=10; // требуется разыменование
Указатели на указатели
void main()
{
int i = 123;
cout<< i <<endl;
cout<< *pi <<endl;
cout<< **ppi <<endl;
cout<<***pppi<<endl;
}
--------------------------------------------------
Задание 4.+
Есть ли в коде ниже ошибки и как их исправить? Что будет выведено на экран?
int *a;
int b[2];
a = &b[1];
b[0] = 7;
b[1] = 10;
a--;
cout<<*a;
-----------------------------------------------------------------------------------
-----------
Задание 5.+
Дано число. Найти все простые делители числа. Реализовать задачу с помощью функции.
-----------------------------------------------------------------------------------
------
Задание 6.+ Дано число. Найти количество разных цифр в нём. Реализовать задачу с
помощью функции.
-----------------------------------------------------------------------------------
-----------