Переменная типа char имеет размер, естественный для хранения символа на данной машине, обычно 1 байт (8 бит).

      Комментарии к записи Переменная типа char имеет размер, естественный для хранения символа на данной машине, обычно 1 байт (8 бит). отключены


Рис. 3. Каждый элемент данных символьного типа занимает один элемент памяти

Набор употребляемых символов включает в себя латинские буквы, 26 прописных и 26 строчных:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Za b c d e f g h i g k l m n o p q r s t u v w x y z

десять арабских цифр:

1 2 3 4 5 6 7 8 9 0

и специальные символы клавиатуры:*

! @ # $ % ^* ( ) _ + — = | \ } {‘ : ; ? /., ~ `

Например, если вы пишете тест, в котором испытуемый должен выбрать один из четырех вариантов ответа — А, Б, В или Г, — каждая буква будет являться отдельным элементом символьных данных.

К символьному типу относятся и специальные управляющие коды, для хранения которых Си отводит столько же памяти, сколько и для единичного символа.

Заметьте, что символьные данные могут быть представлены в виде цифр — 1, 2, 3, — однако Си проводит различия между символом «1» и числом 1. Как символ единица не может использоваться в математических операциях, поскольку она не рассматривается в этом случае как математическая величина. Как число единица участвует в вычислениях, при этом, как вы скоро увидите, для хранения символа «1» Си отводит объем памяти вполовину меньший, чем для хранения числа 1.

Строки

Строкой называют набор символов, слов, фраз или предложений. В отличие от некоторых других языков, в Си строка не выделяется в отдельный тип данных. Язык Си работает со строкой как с последовательностью данных символьного типа, используя так называемый массив. Строка может состоять из любой комбинации букв, цифр, знаков препинания и управляющих кодов, которые тоже могут использоваться в качестве символьных данных. Язык Си проводит различия между строкой цифр и числом. Строка «123» будет восприниматься не как математическое значение сто двадцать три, а как комбинация символов «1», «2», «3».

____________________

Сюда же относятся и буквы русского алфавита: 33 прописных и 33 строчных.

Некоторые компиляторы Си и Си++ поддерживают специальный строковый тип данных и имеют библиотеки функций для работы со строками. Некоторые компиляторы могут иметь специальные функции для работы со строками, не выделяя их при этом в отдельный тип данных. Проверьте документацию вашего компилятора.

Целочисленные величины

Если вы хотите производить математические операции, то должны использовать числовой тип данных. Язык Си имеет несколько типов числовых данных в зависимости от значения, которое может быть им присвоено, и занимаемого объема памяти.

Целые числа (int, от английского integer) — это числа, не имеющие дробной части. Их значение может быть положительным, отрицательным или нулевым, но никогда не имеет в своем составе знаков после точки. В языке Си есть простая аксиома, которая гласит: «Используйте для подсчетов целые числа». Используйте целые числа всегда, когда есть возможность представить некое значение в виде целого числа, например, при подсчете количества повторов определенного события.

Как показано на рис. 4, каждый элемент целочисленных данных занимает в памяти столько же места, сколько два элемента символьных, независимо от величины самого числа (и число 2, и число 2000 требуют для хранения одинакового объема памяти). Но для того чтобы занимаемое место не превышало двух элементов памяти, величина целочисленных данных в языке Си ограничена. К целочисленным данным (собственно тип int) относятся величины, значение которых находится в промежутке между –32768 и +32767. Величины, значение которых выходит за эти пределы, требуют для хранения больше двух элементов памяти.


Рис. 4. Целочисленные данные занимают два элемента памяти

Для того чтобы обеспечить возможность работы с числами любой величины, в большинстве компиляторов Си определено несколько типов целочисленных данных. Границы для разных типов могут различаться в зависимости от конкретного компилятора.

short int короткие целые числа: положительные величины от 0 до 25
Int целые числа: величины от –32768 до +32767
long int длинные целые числа: величины от –2147483648 до +2147483647
unsigned long длинные целые числа без знака: положительные величины от 0 до 4294967295

Вещественные числа

Числа, которые могут содержать десятичную часть (вещественные), называются числами с плавающей точкой (floating-point values). Для работы с ними в языке Си используется тип данных с плавающей точкой (float). Так как числа с плавающей точкой могут быть чрезвычайно маленькими или большими, для их записи часто используют экспоненциальную форму, например, значение числа с плавающей точкой может равняться 3.4е+38. Расшифровать это можно следующим образом: «передвинуть точку вправо на 38 пунктов, добавив соответствующее количество нулей». Существуют дополнительные типы данных для работы в очень широких пределах величин:

Float величины от 3.4Е–38 до 3.4Е+38
Double величины от 1.7Е–308 до 1.7Е+308
long double величины от 3.4Е–4932 до 1.1Е+4932

Тип данных с плавающей точкой имеет предел точности, диапазон которого зависит от компилятора. Например, число 6.12345678912345 в пределах допустимого диапазона для чисел типа float может быть записано компьютером только как 6.12345. Этот тип, как принято говорить, является типом с одинарной точностью, что означает, что точность его ограничена пятью или шестью знаками после точки. Тип double принято называть типом с двойной точностью, он имеет 15–16 знаков после точки.


Рис. 5. Требования к объему памяти данных различных типов

Для записи данных с одинарной точностью резервируется четыре элемента памяти; двойная точность требует резервирования восьми, повышенная (long double) — десяти.

На рис. 5 мы просуммировали сведения о типах данных в языке Си и их требованиях к резервированию памяти.

Статьи к прочтению:

Разбор заданий 10 и 13. ЕГЭ по информатике 2015


Похожие статьи:

  • Список переменного размера

    Министерство общего и профессионального образования Российской Федерации Самарский государственный университет Кафедра БЕЗОПАСНОСТИ ИНФОРМАЦИОННЫХ СИСТЕМ…

  • Строковые данные. типы char и string

    Перечисляемый тип данных. Строковый тип. Множества. Записи. Файлы Перечисляемый тип данных Перечисляемый тип является простым и порядковым. Он позволяет…