Типичные ошибки новичков в c++.

30 January

Всем привет! Недавно я заинтересовался, какие самые частые ошибки новичков в c++. Если вы хотите начать программировать на этом языке, то прочитайте эту статью до конца. Начнём!

Превью
Превью

1. Использование необъявленных переменных:

К примеру, вы пишите код:

Неправильный код.
Неправильный код.

Компилируете его и тут компилятор сообщает об ошибке. Ответ предельно прост: компилятор не знает, что означает y . И перед тем как использовать y , вы должны объявить его как переменную. Ниже показан код, в котором исправлена данная ошибка.

Правильный код.
Правильный код.

2.Использование неинициализированных переменных:

Неправильный код.
Неправильный код.

Что можно ожидать от этого кода? Всё, что угодно. Да, вы объявили переменную, но вы не инициализировали его начальным значением, поэтому там лежит мусорное значение. Оно может быть огромным или очень маленьким. Поэтому могут быть два случая:

  1. если значение ct меньше 100, то программа попадет в цикл;
  2. чаще всего ct огромное число, поэтому скорее всего программа не попадет в цикл.

И самое главное, вы не будете понимать почему это происходит. В C++ переменные неявно не инициализируются нулем, при объявлении. В приведенном выше фрагменте кода, количество может быть любое значение в диапазоне от типа данных int . Это может, например, быть 7631, в таком случае, условие цикла никогда не будет истинным. Возможно, программа будет печатать цифры от -120 до 99, и это тоже признак ошибки. Поэтому, никогда не забывайте о начальной инициализации переменных.

3.Использованние одного знака для проверки равенства

Неправильный код.
Неправильный код.

«Почему никогда не заканчивается цикл?»

Если вы используете один знак равенства для проверки равенства, ваша программа будет вместо сравнения, присваивать значение в правой части выражения, переменной в левой части. В этом случае, значение 'Y' , которое рассматривается как истинное всегда будет присваиваться переменной ch . Таким образом, цикл никогда не закончится. Используйте == для проверки равенства, кроме того, чтобы избежать случайного присвоения, поменяйте местами переменную ch и значение 'Y' . Так, вы получите ошибку компиляции, если случайно использовали один знак равенства, поскольку вы не можете присвоить значение тому, что не является переменной.

Правильный код
Правильный код

4.Необъявленная функция

Неправильный код.
Неправильный код.

«Почему я получаю ошибку о том, что программе неизвестна функция print ?»

Компилятор не знает, что такое print() , так как определение функции print выполнено после main и не объявлен прототип. Всегда помните, нужно указать либо прототип функции, либо все определение функции выше строки, в которой будет вызов этой функции.

Правильный код.
Правильный код.

5.Лишние точка с запятой

Неправильный код.
Неправильный код.

«Почему вывод равен 3476?»

Все дело в том, что вы поставили дополнительные точку с запятой. Помните, что точка с запятой не ставится, после определения, циклов, или функций. Если вы случайно поставите точку с запятой в любом из этих мест, ваша программа будет работать некорректно.

Правильный код
Правильный код

6.Нарушение границ массива

Неправильный код.
Неправильный код.

«Почему вывод программы содержит неправильные значения?»

Элементы массива индексируются, начиная с 0, а значит, общая длинна на 1 меньше. Например, если у вас есть десять элементов массива, первый элемент находится в положении нуля, а последний элемент в позиции 9.

Правильный код.
Правильный код.

И немного мелких ошибок

1.Забытая точка с запятой:

Неправильный код.
Неправильный код.

В 5 пункте мы говорили о лишней точке с запятой, а сейчас поговорим о забытой. В C++ точки с запятой играют важною роль, вот как этот код надо править:

Правильный код.
Правильный код.

2. Проблемы с русским языком

В консоли C++ нельзя выводить русский язык. Но кодеры и это обошли:

Правильный код.
Правильный код.

Строчка " setlocale(LC_ALL, "Russian" ); " даёт возможность выводить русский текст.

Спасибо за прочитывание! Не забудьте поставить лайк. До встречи в этом интересном. Или не очень интересном, мире интернета. Всем пока!