Переменные и типы С++:int, double, char, string, bool
Переменные в C++
Переменная C++ предоставляет нам возможность именованного хранения. Это позволяет программисту манипулировать данными в соответствии с потребностями. Каждая переменная имеет тип в C++. Тип переменной помогает определить размер и расположение карты памяти переменной, диапазон значений, которые могут храниться в этой памяти, и набор операций, которые можно к ней применить.
Из этого руководства по C++ вы узнаете:
- Переменные в C++
- Основные типы переменных в C++
- Правила объявления переменных в C++
- Типы переменных данных C++
- Имя переменной или идентификаторы
- Определитель констант в C++
- Область действия переменных в C++
- Преобразование типа переменной
- Регистрация переменных
- Escape-последовательности
Основные типы переменных в C++
Вот основные типы переменных C++:
Интернет:
Целое число — это числовой литерал (связанный с числами) без какой-либо дробной или экспоненциальной части. Пример. 120, -90 и т. д.
Двойной:
Это значение двойной точности с плавающей запятой. Пример:11,22, 2,345
Символ:
Символьный литерал создается путем заключения одного символа в одинарные кавычки. Например:«a», «m», «F», «P», «}» и т. д.
Плавающая:
Литерал с плавающей запятой — это числовой литерал, который имеет либо дробную, либо экспоненциальную форму. Например:1,3, 2,6
Строковые литералы:
Строковый литерал — это последовательность символов, заключенная в двойные кавычки. Например:«Как дела?»
Бул:
Он содержит логическое значение true или false.
Правила объявления переменных в C++
Вот несколько общих правил именования переменных:
- Имя переменной C++ может содержать только буквы, цифры и символ подчеркивания.
- Имя переменной C++ не может начинаться с цифры.
- Имена переменных не должны начинаться с заглавной буквы.
- Имя переменной, используемое в C++, не может быть ключевым словом. Например, int — это ключевое слово, которое используется для обозначения целых чисел.
- Имя переменной C++ может начинаться со знака подчеркивания. Однако это не считается хорошей практикой.
Типы переменных данных C++
C++ определяет целый набор примитивных типов
Пустота type не имеет связанных с ним значений и может использоваться только в нескольких случаях. Чаще всего это возвращаемый тип функций, которые не возвращают значения.
Арифметические типы включают символы, целые числа, логические значения и числа с плавающей запятой. Арифметический тип, если дополнительно разделить на 2 категории
- Типы с плавающей запятой . Число с плавающей запятой (или тип с плавающей запятой) представляет собой десятичные числа. Стандарт IEEE определяет минимальное количество значащих цифр. Большинство компиляторов обычно обеспечивают большую точность, чем указанный минимум. Как правило, числа с плавающей запятой представлены 32 битами, double – 64 битами, а long двойные – 96 битами или 128 битами.
- Целые типы (включая символьные, целые и логические типы). логическое значение type имеет только два типа значений:True или False. Есть несколько char типы, большинство из которых существуют для поддержки интернационализации. Самый простой тип символов — char. Символ имеет тот же размер, что и один машинный байт, то есть один байт.
Интегральные типы могут быть подписаны или не подписаны.
Подписанный тип :они представляют отрицательные или положительные числа (включая ноль). В знаковом типе диапазон должен быть равномерно разделен между значениями +ve и -ve. Таким образом, 8-битный символ со знаком будет содержать значения от –127 до 127.
Тип без знака :в беззнаковом типе все значения>=0. 8-битный беззнаковый символ может содержать от 0 до 255 (оба включительно).
Имя или идентификаторы переменных
Идентификаторы могут состоять из нескольких букв, цифр и символа подчеркивания или их комбинации. Ограничений на длину имени нет.
Идентификаторы должны
- начинаться либо с буквы, либо с символа подчеркивания ("_").
- И чувствительны к регистру; прописные и строчные буквы различны:
// определяет четыре разные переменные типа int
int guru99, gurU99, GuRu99, GURU99;
В языке C++ зарезервировано несколько имен для его использования.
Существует множество общепринятых соглашений по именованию переменных в разных языках программирования. Соблюдение этих соглашений может улучшить читабельность программы.
- Идентификатор должен хотя бы частично указывать на его значение.
- Имена переменных обычно пишутся строчными буквами — guru99, а не Guru99 или GURU99.
- Определяемые нами классы обычно начинаются с заглавной буквы.
- Идентификаторы, содержащие несколько слов, должны визуально различать каждое слово. Например, guru99_website, а не guru99website.
Объявление и определение переменных C++
Объявление переменной делает имя известным программе в области, в которой оно определено. Пример:
int a=5; int b; char c='A';
int a,b; a=b=1000;
List initialization int a(5); int b{5};
Определитель констант в C++
Предположим, что имеется переменная buffsize, в которой указывается количество входных данных, которые должны быть получены от пользователя. Здесь мы не хотим менять значение buffsize во всей программе. Мы хотим определить переменную, значение которой, как мы знаем, не должно меняться.
В таком случае используйте ключевое слово const
const int bufSize = 512; // input buffer size
Это определяет bufSize как константу. Любая попытка присвоить или изменить bufSize приводит к ошибке.
Здесь мы не можем изменить значение константного объекта после его создания, он должен быть обязательно объявлен и инициализирован. В противном случае компилятор выдает ошибку.
const int i = get_size(); // ok: initialized at run time const int j = 42; // ok: initialized at compile time const int k; // error: k is uninitialized const int i = 42; const int ci = i; // ok: the value in i is copied into ci
Область действия переменных в C++
Область действия — это область программы, в которой переменная имеет значение. В основном одно и то же имя может использоваться для обозначения разных объектов в разных областях. Переменные видны с точки, где они объявлены, до конца области, в которой появляется их объявление.
#include <iostream> int main() { int sum = 0; // sum values from 1 through 10 inclusive for (int val = 1; val <= 10; ++val) sum += val; // equivalent to sum = sum + val cout << "Sum of 1 to 10 inclusive is "<< sum <<endl; return 0; }
Эта программа определяет 3 имени, а именно, main, sum и val. Он использует имя пространства имен std вместе с двумя другими именами из этого пространства имен — cout и endl.
- Имя функции main определяется вне фигурных скобок. Имя функции main, как и большинство других имен, определенных вне функции, имеет глобальную область действия. Это означает, что после объявления имена в глобальной области доступны на протяжении всей программы.
- Переменная sum определяется в рамках блока, который является телом основной функции. Доступ к ней можно получить из точки объявления и через остальную часть тела основной функции. Однако не вне его. Это означает, что переменная sum имеет блочную область действия. .
- Переменная val определена в области действия оператора for. Его можно легко использовать в этом операторе, но не где-либо еще в основной функции. Он имеет локальную область действия. .
Вложенная область
Область может содержать другие области. Содержащаяся (или вложенная) область называется внутренней областью. Содержащая область является внешней областью.
#include <iostream> using namespace std; // Program for illustration purposes only: It is bad style for a function // to use a global variable and also define a local variable with the same name int reused = 42; // reused has global scope int main() { int unique = 0; // unique has block scope // output #1: uses global reused; prints 42 0 cout << reused << " " << unique << endl; int reused = 0; // new, local object named reused hides global reused // output #2: uses local reused; prints 0 0 cout << reused << " " << unique << endl; // output #3: explicitly requests the global reused; prints 42 0 cout << ::reused << " " << unique << endl; return 0; }
Вывод №1 появляется перед локальным определением повторного использования. Таким образом, этот вывод
оператор - это тот, который использует повторно используемое имя, определенное в глобальной области. Этот оператор выводит
42 0
Выход 2 происходит после локального определения повторного использования. Теперь это в рамках. Следовательно, этот второй оператор вывода просто использует локальный объект с именем reused, а не глобальный, и выводит
0 0
Вывод №3 переопределяет правила области действия по умолчанию с помощью оператора области видимости. Глобальная область не имеет имени. Таким образом, когда оператор области видимости (::) имеет пустую левую часть. Он интерпретирует это как запрос на получение имени в правой части глобальной области видимости. Таким образом, выражение использует глобальное повторное использование и выводит
42 0
Преобразование типа переменной
Переменная одного типа может быть преобразована в другой. Это известно как «преобразование типов». Давайте посмотрим на правила преобразования различных типов переменных C++:
Присвоение значения non-bool переменной bool дает false, если значение равно 0, и true в противном случае.
bool b = 42; // b is true
Присвоение логического значения одному из других арифметических типов дает 1, если логическое значение истинно, и 0, если логическое значение ложно.
bool b = true; int i = b; // i has value 1
Присвоение значения с плавающей запятой переменной типа int дает усеченное значение. Сохраняемое значение — это часть до десятичной точки.
int i = 3.14; // i has value 3
Присвоение значения int переменной типа float приводит к тому, что дробная часть становится равной нулю. Точность обычно теряется, если целое число имеет больше битов, чем может вместить плавающая переменная.
Int i=3; double pi = i; // pi has value 3.0
Если мы попытаемся присвоить значение вне диапазона переменной беззнакового типа, результатом будет остаток от значения %(по модулю)
Например, 8-битный беззнаковый тип char может содержать значения от 0 до 255 включительно. Присвоение значения за пределами этого диапазона приведет к тому, что компилятор присвоит оставшуюся часть этого значения по модулю 256. Следовательно, по логике, приведенной выше, присвоение -1 8-битному беззнаковому символу дает этому объекту значение 255.
unsigned char c = -1; // assuming 8-bit chars, c has value 255
Если мы попытаемся присвоить значение вне допустимого диапазона объекту подписанного типа, результат будет непредсказуем. Это не определено. Внешне может показаться, что программа работает, или она может дать сбой, или может выдавать неверные значения.
signed char c2 = 256; // assuming 8-bit chars, the value of c2 is undefined
Компилятор применяет такие же преобразования, когда мы используем значение одного типа там, где ожидается значение другого типа.
int i = 42; if (i) // condition will evaluate as true i = 0;
Если это значение=0, то условие ложно; все остальные (ненулевые) значения дают true. Согласно той же концепции, когда мы используем логическое значение в арифметическом выражении, его значение всегда преобразуется либо в 0, либо в 1. В результате использование логического значения в арифметическом выражении обычно почти наверняка неверно.
Внимание! Не смешивайте подписанные и неподписанные типы
Выражения, которые смешивают знаковые и беззнаковые, могут давать неожиданные и неправильные результаты, когда значение со знаком отрицательно. Как обсуждалось выше, знаковые значения автоматически преобразуются в беззнаковые.
Например, в арифметическом выражении типа
x* y
Если x равно -1, а y равно 1, и если оба значения x и y равны int, то значение, как и ожидалось, равно -1.
Если x равно int, а y беззнаково, то значение этого выражения зависит от того, сколько битов имеет целое число на компилирующей машине. На нашей машине это выражение дает 4294967295.
Зарегистрировать переменные
Доступ к переменным регистров осуществляется быстрее, чем к переменным памяти. Таким образом, переменные, которые часто используются в программе на C++, могут быть помещены в регистры с помощью register. ключевое слово. Ключевое слово register указывает компилятору сохранить данную переменную в регистре. Это выбор компилятора, помещать его в регистр или нет. Как правило, компиляторы сами проводят различные оптимизации, включая размещение некоторых переменных в регистре. В программе на C++ нет ограничений на количество регистровых переменных. Но компилятор не может хранить переменную в регистре. Это связано с тем, что регистровая память очень ограничена и чаще всего используется операционной системой.
Чтобы определить:
register int i;
Комментарии
Комментарии — это части кода, игнорируемые компилятором. Это позволяет программисту делать заметки в соответствующих областях исходного кода/программы. Комментарии приходят либо в виде блоков, либо в виде отдельных строк. Комментарии к программе являются пояснительными заявлениями. Его можно включить в код C++, что поможет любому, кто читает его исходный код. Все языки программирования допускают ту или иную форму комментариев. C++ поддерживает как однострочные, так и многострочные комментарии.
- Однострочные комментарии те, которые начинаются с // и продолжаются до конца строки. Если последним символом в строке комментария является \, то комментарий продолжится на следующей строке.
- Многострочные комментарии те, которые начинаются с /* и заканчиваются */.
/* This is a comment */ /* C++ comments can also * span multiple lines */
Escape-последовательности
Некоторые символы, такие как backspace и управляющие символы, не имеют видимого изображения. Такие символы называются непечатаемыми. Другие символы (одинарные и двойные кавычки, вопросительный знак и обратная косая черта) имеют особое значение во многих языках программирования.
Наши программы не могут напрямую использовать ни один из этих символов. Вместо этого мы можем использовать управляющую последовательность для представления такого символа. Управляющая последовательность начинается с обратной косой черты.
Язык программирования C++ определяет несколько escape-последовательностей:
Новая строка
\n
Вертикальная вкладка
\v
Обратная косая черта
\\
Возврат каретки
\р
Горизонтальная вкладка
\т
Возврат
\b
Вопросительный знак
\?
Подача страницы
\f
Оповещение (звонок)
\а
Двойная кавычка
\”
Одинарная кавычка
\’
Мы используем escape-последовательность, как если бы это был один символ:
cout << '\n'; // prints a newline cout << "\tguru99!\n"; // prints a tab followed by "guru99!" and a newline
Мы также можем написать обобщенную управляющую последовательность \x, за которой следует одна или несколько шестнадцатеричных цифр. Или мы используем \, за которым следует одна, две или три восьмеричных цифры. Обобщенная управляющая последовательность представляет числовое значение символа. Некоторые примеры (предполагая набор символов Latin-1):
\7 (bell) \12 (newline) \40 (blank) \0 (null) \115 ('M') \x4d ('M')
Мы можем использовать предопределенные escape-последовательности, как и любой другой символ.
cout << "Hi \x4dO\115!\n"; // prints Hi MOM! followed by a newline cout << '\115' << '\n'; // prints M followed by a newline
Обзор
- Переменная C++ предоставляет нам возможность именованного хранилища.
- Типы переменных C++:int, double, char, float, string, bool и т. д.
- Вложенная (или вложенная) область называется внутренней областью, а содержащая область — внешней областью.
- Переменная одного типа может быть преобразована в другой. Это известно как «преобразование типов».
- Переменные регистра доступны быстрее по сравнению с переменными памяти.
- Комментарии – это части кода, игнорируемые компилятором.
- Некоторые символы, такие как символы возврата и управляющие символы, не имеют видимого изображения.
Язык C
- Переменные C# и (примитивные) типы данных
- Переменные C++, литералы и константы
- Типы данных С++
- C Переменные, константы и литералы
- C Типы данных
- Типы пользовательских функций в программировании на C
- Класс хранения C
- Операторы в C++ с примером:что такое, типы и программы
- Java — типы переменных
- С — переменные