Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Переменные и типы С++:int, double, char, string, bool

Переменные в C++

Переменная C++ предоставляет нам возможность именованного хранения. Это позволяет программисту манипулировать данными в соответствии с потребностями. Каждая переменная имеет тип в C++. Тип переменной помогает определить размер и расположение карты памяти переменной, диапазон значений, которые могут храниться в этой памяти, и набор операций, которые можно к ней применить.

Из этого руководства по C++ вы узнаете:

Основные типы переменных в C++

Вот основные типы переменных C++:

Интернет:

Целое число — это числовой литерал (связанный с числами) без какой-либо дробной или экспоненциальной части. Пример. 120, -90 и т. д.

Двойной:

Это значение двойной точности с плавающей запятой. Пример:11,22, 2,345

Символ:

Символьный литерал создается путем заключения одного символа в одинарные кавычки. Например:«a», «m», «F», «P», «}» и т. д.

Плавающая:

Литерал с плавающей запятой — это числовой литерал, который имеет либо дробную, либо экспоненциальную форму. Например:1,3, 2,6

Строковые литералы:

Строковый литерал — это последовательность символов, заключенная в двойные кавычки. Например:«Как дела?»

Бул:

Он содержит логическое значение true или false.

Правила объявления переменных в C++

Вот несколько общих правил именования переменных:

Типы переменных данных C++

C++ определяет целый набор примитивных типов

Пустота type не имеет связанных с ним значений и может использоваться только в нескольких случаях. Чаще всего это возвращаемый тип функций, которые не возвращают значения.

Арифметические типы включают символы, целые числа, логические значения и числа с плавающей запятой. Арифметический тип, если дополнительно разделить на 2 категории

  1. Типы с плавающей запятой . Число с плавающей запятой (или тип с плавающей запятой) представляет собой десятичные числа. Стандарт IEEE определяет минимальное количество значащих цифр. Большинство компиляторов обычно обеспечивают большую точность, чем указанный минимум. Как правило, числа с плавающей запятой представлены 32 битами, double – 64 битами, а long двойные – 96 битами или 128 битами.
  2. Целые типы (включая символьные, целые и логические типы). логическое значение type имеет только два типа значений:True или False. Есть несколько char типы, большинство из которых существуют для поддержки интернационализации. Самый простой тип символов — char. Символ имеет тот же размер, что и один машинный байт, то есть один байт.

Интегральные типы могут быть подписаны или не подписаны.

Подписанный тип :они представляют отрицательные или положительные числа (включая ноль). В знаковом типе диапазон должен быть равномерно разделен между значениями +ve и -ve. Таким образом, 8-битный символ со знаком будет содержать значения от –127 до 127.

Тип без знака :в беззнаковом типе все значения>=0. 8-битный беззнаковый символ может содержать от 0 до 255 (оба включительно).

Имя или идентификаторы переменных

Идентификаторы могут состоять из нескольких букв, цифр и символа подчеркивания или их комбинации. Ограничений на длину имени нет.

Идентификаторы должны

// определяет четыре разные переменные типа int

int guru99, gurU99, GuRu99, GURU99;

В языке C++ зарезервировано несколько имен для его использования.

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

Объявление и определение переменных 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.

Вложенная область

Область может содержать другие области. Содержащаяся (или вложенная) область называется внутренней областью. Содержащая область является внешней областью.

#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

  1. Переменные C# и (примитивные) типы данных
  2. Переменные C++, литералы и константы
  3. Типы данных С++
  4. C Переменные, константы и литералы
  5. C Типы данных
  6. Типы пользовательских функций в программировании на C
  7. Класс хранения C
  8. Операторы в C++ с примером:что такое, типы и программы
  9. Java — типы переменных
  10. С — переменные