Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Философия программирования на C++


Всем привет!

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

Итак, рассмотрим программу.

#include <iostream>

using namespace std;

int main() {
    int a;
    int b = a+10;
    int c = c+20;
    int d = 20;
    cout << "a: " << a << endl;
    cout << "b: " << b << endl;
    cout << "c: " << c << endl;
    cout << "d: " << d << endl;
}

Сначала мы объявляем переменную a. Однако, в отличии от предыдущего раза, мы не присваиваем ей никакого значения. Это допустимо. Но что же тогда будет? Давайте проверим!

a: 872620176 b: 872620186 c: 20 d: 20

Как мы видим, вывелось какое-то число. Но откуда оно? Чтобы понять это, запустим программу во второй раз!

a: -1591156016 b: -1591156006 c: 20 d: 2

Какой можно сделать из этого вывод? Да, переменная a содержит случайное значение, обычно называемое мусором. Здесь все дело в устройстве памяти компьютера, но его я пока рассказывать не буду. Советую просто запомнить, что так объявлять переменные хоть и можно, но крайне не рекомендуется. Лучше просто записать в нее хотя бы ноль (кстати, компилятор вас предупредит об этом).

Кроме того, мы видим, что в переменную можно сохранять не только просто числа, но и результат операций (как показано в примере с переменной b). Поскольку a является по сути случайным числом, то и b тоже будет случайным.

Теперь про переменную c. Здесь все не так просто. Дело в том, что в этой строке мы говорим компилятору, что создаем переменную c, но вычисляя ее значение (то, что стоит справа), компилятор не знает, чему равна эта переменная, поэтому вообще говоря там тоже будет некоторое случайное значение (мой компилятор однако записал туда число 20).

Ну а дальше думаю, что все ясно.

Всем удачи, до следующих выпусков! 


В избранное