Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ_ПО_ПРОГРАММИРОВАНИЮ_ПРЕПОД_3403_220301.doc
Скачиваний:
27
Добавлен:
06.11.2018
Размер:
845.31 Кб
Скачать

3. Определение размеров типов данных и объектов.

/* ПРОГРАММА:

dim_data.c – определение размеров типов данных.

*/

/*#############################################*/

/*============================= include */

#include<stdio.h>

/*============================= main() */

main()

{/*.---------------------------.begin main() */

printf(“Данные типа char занимают %d байт.\n”,sizeof(char));

printf(“Данные типа int занимают %d байт.\n”,sizeof(int));

printf(“Данные типа long занимают %d байт.\n”,sizeof(long));

printf(“Данные типа float занимают %d байт.\n”,sizeof(float));

printf(“Данные типа double занимают %d байт.\n”,sizeof(double));

return 0;

}/*.---------------------------.end main() */

/*#############################################*/

РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ.

Данные типа char занимают 1 байт.

Данные типа int занимают 2 байт.

Данные типа long занимают 4 байт.

Данные типа float занимают 4 байт.

Данные типа double занимают 8 байт.

ПОЯСНЕНИЯ К ПРОГРАММЕ.

Для определения размеров типов данных в байтах используется операция sizeof(тип данных). В скобках указывается тип данных.

***************************************************************

/* ПРОГРАММА:

talk.c – разговор (определение размеров объектов и длины строк).

*/

/*#############################################*/

/*============================= include */

#include<stdio.h>

/*============================= define */

# define DENSITY 62.4

/* плотность тела человека в фунтах на кубический фут */

/* строка обрабатывается препроцессором */

/*============================= main() */

main()

{/*.---------------------------.begin main() */

/*------------- переменные */

char name [40]; /* буфер для ввода имени, состоящий из 40 байт */

/* 1 символ хранится в 1 байте */

float weight; /* вес в фунтах, 1 фунт = 453.59 г.*/

float volume; /* объем в кубических футах 1 куб. фут = 3.04 куб. м */

int size; /* размер буфера в байтах */

int letters; /* размер строки символов в байтах */

/*------------- */

printf(" Привет! Как Вас зовут?\n" );

scanf(" %s" , name); /* ввод имени, например, Анжелика */

/* при вводе в массив обозначение указателя & не используется */

printf("%s, каков Ваш вес в фунтах?\n",name);

scanf("%f", &weight); /* ввод веса, например, 102.5 */

size = sizeof name; /* определение размера объекта (буфера name) */

letters = strlen (name); /* определение размера строки в буфере name) */

volume = weight/DENSITY;

printf

(" Прекрасно, %s, Ваш объем %3.2f кубических фута.\n", name, volume);

printf(" Ваше имя состоит из %d букв,\n", letters);

printf(" Для его размещения в памяти имеется %d байт.\n", size);

return 0;

}/*.---------------------------.end main() */

/*#############################################*/

РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ.

Привет! Как Вас зовут?

Анжелика

Анжелика, каков Ваш вес в фунтах?

102,5

Прекрасно, Aнжелика, ваш объем 1,64 кубических фута.

Ваше имя состоит из 8 букв

Для его размещения в памяти имеется 40 байт.

ПОЯСНЕНИЯ К ПРОГРАММЕ.

  • Для хранения символьной строки - в данном случае некоторого имени - используется буфер – массив, описанный оператором char name [40]. Квадратные скобки указывают, что переменная name - массив, 40 - число его элементов, a char задает тип каждого элемента. Массив можно представить себе как совокупность нескольких ячеек памяти, объединенных в одну строку. Массив - это упорядоченная последовательность элементов данных одного типа. В данном примере имеется массив из 40 ячеек памяти, в каждую из которых можно поместить один элемент типа char. Последним элементом строки символов, записанных в массив, является "нуль-символ" \0. Нуль-символ - не цифра 0; он не выводится на печать и в таблице кода ASCII имеет номер 0. Наличие нуль - символа означает, что количество ячеек массива должно быть, по крайней мере, на одну больше, чем число символов, которые необходимо размещать в памяти.

  • При вводе и выводе строки используется преобразование %s.

  • Для определения константы DENSITY используется препроцессор.

  • Для определения размеров объекта (переменной, константы, в данном случае массива) в байтах используется операция sizeof без скобок. Например: sizeof name; sizeof 6.28.

  • Для определения длины строки используется функция strlen().

***************************************************************