Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
ЛЕКЦИЯ № 10
Указатели и ссылки
Оперативная память компьютера разделена на последовательно пронумерованные ячейки. Каждая переменная размещается в одной или нескольких последовательно расположенных отдельных ячейках памяти, адрес первой из них называется адресом переменной. Каждая ячейка в оперативной памяти занимает один байт или 8 бит. Ниже схематически представлено размещение переменной X=5 типа short int (размер 2 байта) в оперативной памяти компьютера.
Оперативная память компьютера разделена на последовательно пронумерованные ячейки. Каждая переменная размещается в одной или нескольких последовательно расположенных отдельных ячейках памяти, адрес первой из них называется адресом переменной. Каждая ячейка в оперативной памяти занимает один байт или 8 бит. Ниже схематически представлено размещение переменной X=5 типа short int (размер 2 байта) в оперативной памяти компьютера.
Указатель (pointer) – это переменная, хранящая адрес другой переменной (другого объекта). Размер всех указателей равен 4 байтам. Адрес можно получить с помощью оператора обращения к адресу (&). Ниже приведена программа, которая выводит адреса переменных.
#include <iostream> #include <stdio.h> using namespace std; int main()
{
//объявление и инициализация переменной a типа bool bool a = 2;
//объявление и инициализация переменной b типа int int b;
//объявление и инициализация переменной c типа long int long int c;
//вывод на экран адреса переменной a cout <<"adress a="<<&a<<endl; //вывод на экран адреса переменной b cout <<"adres b="<<&b<<endl;
//вывод на экран адреса переменной c
cout <<"adres c="<<&c<<endl;
return 0;
}
После запуска программы на выполнение, на экране можно увидеть адреса переменных.
Следует иметь в виду, что результат зависит от характеристик компьютера.
Объявить указатель можно следующим образом:
Тип * переменная
Компилятор различает тип переменной, адрес которой будет храниться в указателе. При несовпадении типов будет выдано сообщение об ошибке. После объявления указателю желательно присвоить какое- либо значение, например 0. Не следует использовать неинициализированные указатели. Например, фрагмент кода программы:
//объявление целочисленной переменной x int x=5;
//объявление указателя px целочисленного типа int * px=0;
//присвоение значению указателя px адреса переменной x px=&x; схематично можно представить следующим образом:
Пример программы с использованием указателей:
#include <iostream> #include <stdio.h> using namespace std; int main()
{
//объявление и инициализация переменной a типа bool bool a = 0;
//объявление и инициализация переменной b типа int int b=12;
//объявление и инициализация переменной c типа long int long int c=123456789;
//объявление и инициализация указателя pa типа boolbool *pa=0;
//объявление и инициализация указателя pb типа int int *pb=0;
//объявление и инициализация указателя pc типа long int
long int *pc=0;
//указателю pa типа bool присваивается адрес переменной a типа bool pa=&a;
//указателю pb типа int присваивается адрес переменной b типа int pb=&b;
//указателю pc типа long int присваивается адрес переменной b типа long int pc=&c;
//вывод на экран адреса переменной a cout <<"adres a="<<&a<<endl;
//вывод на экран адреса переменной b cout <<"adres b="<<&b<<endl;
//вывод на экран адреса переменной c cout <<"adres c="<<&c<<endl;
//вывод на экран значения указателя pa cout <<"pointer pa="<<pa<<endl
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.