Рубрики

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

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

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

#include <iostream>

  

using namespace std;

  

int main()

{

    // Следующие переменные типа данных не будут

    // инициализироваться с любыми значениями по умолчанию

    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 ++, является правило отсутствия накладных расходов: то, что вы не используете, вы не платите». -Струструп.

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

Рекомендуемые посты:

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

0.00 (0%) 0 votes