Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 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






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных