Неинициализированные примитивные типы данных в C / C ++

Опубликовано: 30 Декабря, 2021

Как вы думаете, что происходит, когда вы используете неинициализированный примитивный тип данных?
Что ж, вы можете предположить, что компилятор должен присвоить вашей переменной примитивного типа значимые значения, такие как 0 для int, 0.0 для float. А как насчет типа данных char?

Давайте найдем ответ на этот вопрос, запустив код в IDE.

#include <iostream>
using namespace std;
int main()
{
// The following primitive data type variables will not
// be initialized with any default values
char ch;
float f;
int i;
double d;
long l;
cout << ch << endl;
cout << f << endl;
cout << i << endl;
cout << d << endl;
cout << l << endl;
return 0;
}

Вывод в GFGs IDE:


5,88052e-39
0
6.9529e-310
0

Вывод в Codechef IDE:


0
0
0
0

Вывод на моей машине:


1.4013e-045
0
2.96439e-323
0


Почему компилятор C / C ++ не инициализирует переменные значениями по умолчанию?

«Одна из вещей, которая сохранила жизнеспособность C ++, - это правило нулевых накладных расходов: то, что вы не используете, вы не платите». -Stroustrup.

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

Хотите учиться на лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для языка и STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
C++ C