ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Вопрос 37. Функции преобразования числа в цифровую строку и обратно. Проиллюстрировать работу функций на примерах.Выполнить преобразование строки в число можно многими способами - выбор конкретного зависит от ваших целей на момент написания кода. Есть штатные способы - ряд библиотечных функций, есть более изощренные, есть совсем уж извращенные годные разве что для экзерсисов в области программирования. Начну с самых простых. Первый, и, наверное, самый распространенный, но далеко не самый лучший - использование штатных библиотечных функций atoi, atof, atol. Эти функции входит в стандартную библиотеку языка и присутствует в любом компиляторе. Их объявления выглядит так: int atoi(const char* str) long atol(const char* str) double atof(const char* str) Пример: #include <string> #include <sstream> template <typename T> std::string toString(T val) { std::ostringstream oss; oss<< val; return oss.str(); } template<typename T> T fromString(const std::string& s) { std::istringstream iss(s); T res; iss >> res; return res; } // Пример использования std::string str; int iVal; float fVal; str = toString(iVal); str = tiString(fVal); iVal = fromString<int>(str); fVal = fromString<float>(str); Вопрос 38. Понятие указателя. Способы инициализации указателей. Операции с указателями. Привести примеры работы с указателями на языке С/C++. l Указатель является объектом (переменной), хранящим адрес другого объекта. l Для обращения к объекту, на который указывает указатель (адрес которого хранится в указателе), используется оператор * (звёздочка), называемый оператором разыменования или косвенным обращением. l Для получения адреса объекта используется унарный оператор &. 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++. l Имя массива можно рассматривать как указатель на его первый элемент. int v [ ] = { 1,2,3,4 }; int *p1 = v; // Указатель на первый элемент int *p2 = &v[0] // Указатель на первый элемент int *p3 = &v[4] // Указатель на элемент, // следующий за последним l В противоположность указателю на массив, определение массива указателей выглядит следующим образом: int *ap [15]; // Массив из 15 указателей на int Не нашли, что искали? Воспользуйтесь поиском:
|