Студопедия

КАТЕГОРИИ:

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


Char, int, long, float, double, long double,




а также двух производных типов "указатель на указатель", соответственно, на типы char и double.

Для вычисления размеров объектов применить к указанным типам данных операцию sizeof. Программу запустить дважды: в первом случае использовать модель памяти Small, во-втором случае — модель Large.

В отчете результаты работы программы оформить в виде таблицы:

Модель памяти Тип данных Размер элемента данных Размер указателя
. . . . . . . . . . . .
. . . . . . . . . . . .

Адресная арифметика

Хотя значения указателей (адреса) по-своему смыслу являются беззнаковыми целыми числами, это особый тип данных со своими правилами адресной арифметики.

ЗАДАНИЕ 3

Написать программу, в которой определяются переменные типов char, int, double.

Для каждой переменной программа выводит (в строку) ее адрес и значения выражений "адрес + 2" и "адрес – 1" (какой тип имеют эти значения?).

В отчете результаты привести в виде таблицы с колонками

Тип данного adr (адрес объекта) adr + 2 adr –1
. . . . . . . . . . . .
. . . . . . . . . . . .

Полученные результаты пояснить.

Замечание

Вычисляемые здесь адресные выражения с практической точки зрения лишены смысла (адрес какого объекта мы получаем в результате вычислений?). Здесь эти выражения используются только для демонстрации правил адресной арифметики. Реальное применение адресной арифметики потребуется при выполнении второго пункта задания 4.

Операция приведения типа

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

(<тип_данных>) выражение.

Выражение может иметь базовый или производный тип, в том числе и адресный.

ЗАДАНИЕ 4

1. Какие результаты будут получены при выполнении следующего фрагмента программы и почему?

int x=8, y=3;

Float z1, z2;

z1=x/y;

z2=(float)x/y;

printf("x/y=%f\n",z1);

printf("(float)x/y=%f\n",z2);

Написать программу, которая поочередно выводит в шестнадцатеричной форме значения байтов представления переменной ul

unsigned long ul=0x77BBCCDD.

Сообщения должны иметь вид "Байт ..., значение ...").

Для этого нужно:

а) определить в программе указатель pUL соответствующего типа и присвоить ему адрес переменной ul (на сколько байт ссылается этот указатель при использовании среды BC++?);

б) определить указатель на один байт (какой тип он должен иметь?) и, используя операцию приведения типа, инициализировать его адресом объекта ul;


Поделиться:

Дата добавления: 2015-09-15; просмотров: 174; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты